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':应用程序定义的错误或对象定义的错误
当我删除在上一步中创建的工作表并尝试再次运行宏时,它可以正常工作,但如果不删除它就无效。
答案 0 :(得分:1)
你可以在顶部试试这个:
on error resume next
ActiveWorkbook.Sheets("your sheet").delete
on error goto 0
如果存在,它将被删除,您的代码将成为新的代码。这有帮助吗?