使用VBAreplaceExcel 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 

我正在试图用这个代码做一个数据透视表。 第一次尝试顺利,因为没有床单。 当我第二次尝试时,它给了我一个错误,因为表中已经存在与它有相同的名称与前一个表。

错误是

运行时错误“1004”:应用程序定义的错误或对象定义的错误

当我删除在上一步中创build的工作表,然后再次运行macros再次正常工作,但它不工作,不删除它。

你可以尝试在顶部:

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

如果它存在,它将被删除,你的代码会做出新的。 它有帮助吗?