/ / Zastąpienie istniejącego arkusza w programie Excel 2007 za pomocą VBA - excel, vba, excel-vba, excel-2007

Zastąpienie istniejącego arkusza w programie Excel 2007 przy użyciu 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

Próbuję utworzyć tabelę przestawną z tym kodem. Pierwsza próba poszła dobrze, ponieważ nie miała żadnych arkuszy. Kiedy spróbowałem po raz drugi, pojawił się błąd, ponieważ arkusz już istniał z tabelą zawierającą tę samą nazwę co poprzednia.

Błąd jest

Błąd wykonania "1004": Błąd zdefiniowany w aplikacji lub obiekt

Usunięcie arkusza roboczego utworzonego w poprzednim kroku i próba uruchomienia makra ponownie działa poprawnie, ale nie działa bez jego usunięcia.

Odpowiedzi:

1 dla odpowiedzi № 1

możesz to wypróbować na górze:

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

jeśli istnieje, zostanie usunięty, a twój kod będzie nowy. Czy to pomaga?