我正在尝试使用以下代码创建一个简单的数据透视表:
Dim rngA As Range
Dim rngB As Range
Set rngA = Sheets("Sheet1").Range("C4:G10")
Set rngB = Sheets("Sheet2").Range("Q2")
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=rngA, Version:=xlPivotTableVersion14).CreatePivotTable TableDestination:=rngB, TableName:="My_Pivot_Table", DefaultVersion:=xlPivotTableVersion14
我的数据包含非常长的文本行(最多900个字符),=>这就是我的VBA代码无法创建表的原因。使用较短的文本或使用宏录制器,它可以正常工作。
我收到两个不同的错误:
如果我为“.Add”交换“.Create”,我会在最后一行代码中的“Version”一词中得到:“编译错误:找不到命名参数”。
- 醇>
使用.create我得到“type Mismatch”,
它似乎与我在Stackoverflow上找到的其他问题不同。
知道怎么解决吗?
编辑: 如果我交换
,该准则有效SourceData:=rngA
带
SourceData:="Sheet1!R4C3:R10C7"
答案 0 :(得分:0)
PivotCaches.Add不会将Version作为参数
https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.pivotcaches.add.aspx
因此,如果你删除它,你将留下:(编译)
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=rngA).CreatePivotTable TableDestination:=rngB,
TableName:="My_Pivot_Table", DefaultVersion:=xlPivotTableVersion14
但是,我认为正确的代码更像是这样:
Dim rngA As Range
Dim rngB As Range
Set rngA = Sheets("Sheet1").Range("G4:G10")
Set rngB = Sheets("Sheet2").Range("Q2")
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=rngA,
Version:=6).CreatePivotTable TableDestination:= rngB,
TableName:="My_Table", DefaultVersion:=6