/ / Ersetzen des vorhandenen Arbeitsblatts in Excel 2007 mit VBA - Excel, VBA, Excel-Vba, Excel-2007

Ersetzen Sie das vorhandene Blatt in Excel 2007 mit VBA - Excel, VBA, Excel-VBA, Excel-2007

Sub testmac()
"
" testmac Macro
"
"
ActiveWorkbook.Names.Add Name:="items", RefersToR1C1:= _
"=Report!R7C8:R486C11"
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
"ODBC;DSN=Excel Files;DBQ=path
), Array("P;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;")), Destination:= _
Range("$A$1")).QueryTable
.CommandText = Array( _
"TRANSFORM first(`Dimension Value Code`)" & Chr(13) & "" & Chr(10) & "SELECT items.`No#`, items.`Description`" & Chr(13) & "" & Chr(10) & "FROM items" & Chr(13) & "" & Chr(10) & "GROUP BY items.`No#`, items.`Description`" & Chr(13) & "" & Chr(10) & "PIVOT `Dimension Code`" _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_Query_from_Excel_FilesXY"
.Refresh BackgroundQuery:=False

End With

End Sub

Ich versuche, eine Pivot-Tabelle mit diesem Code zu erstellen. Der erste Versuch verlief gut, da es keine Laken gab. Als ich es zum zweiten Mal versuchte, gab es einen Fehler, da das Blatt bereits vorhanden war und die Tabelle denselben Namen wie das vorherige hatte.

Der Fehler ist

Laufzeitfehler "1004": Anwendungsdefinierter oder objektdefinierter Fehler

Wenn ich das im vorherigen Schritt erstellte Arbeitsblatt lösche und versuche, das Makro erneut auszuführen, funktioniert es ordnungsgemäß, es funktioniert jedoch nicht, ohne es zu löschen.

Antworten:

1 für die Antwort № 1

Sie können dies an der Spitze versuchen:

on error resume next
ActiveWorkbook.Sheets("your sheet").delete
on error goto 0

Wenn es existiert, wird es gelöscht und der Code wird den neuen Code erstellen. Hilft es?