创建数据透视表

时间:2017-06-07 04:30:22

标签: excel vba excel-vba

您好我正在处理我的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

此代码与我的原始数据源完美配合。但是我今天生成了源文件(已更新),然后代码不再有效。我不认为源数据存在很大问题,因为我仍然可以使用定义的范围手动创建数据透视表。

有什么想法吗?感谢

0 个答案:

没有答案