您好我正在处理我的VBA代码,根据源数据的最后一行设置范围,然后在该范围内创建一个数据透视表。消息框为我提供了源数据中最右边的行号。但是,当我运行错误代码(错误类型不匹配)时,最后一行出错了。你能帮我解决一下吗?谢谢。
Dim PvtTbl As pivotTable
Dim wsData As Worksheet
Dim rngData As Range
Dim PvtTblCache As PivotCache
Dim wsPvtTbl As Worksheet
Dim pvtFld As PivotField
Set wsData = Worksheets("Task List Data Export")
Set wsPvtTbl = Worksheets("Summary")
wsPvtTbl.Cells.Clear
wsPvtTbl.Cells.ColumnWidth = 10
For Each PvtTbl In wsPvtTbl.PivotTables
If MsgBox("Delete existing PivotTable!", vbYesNo) = vbYes Then
PvtTbl.TableRange2.Clear
End If
Next PvtTbl
Dim last As Long
With Worksheets("Task List Data Export")
last = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
MsgBox last
Set rngData = Nothing
With wsData
Set rngData = wsData.Range(.Cells(1, 1), .Cells(last, 15))
End With
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=rngData, Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=wsPvtTbl.Range("B25"), TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion12
此代码与我的原始数据源完美配合。但是我今天生成了源文件(已更新),然后代码不再有效。我不认为源数据存在很大问题,因为我仍然可以使用定义的范围手动创建数据透视表。
有什么想法吗?感谢