excel - 创建数据透视表的过程或调用无效

标签 excel vba

我有以下代码用于在我的工作簿中创建一组列的数据透视表。

  ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
  newname, Version:=6).CreatePivotTable TableDestination:= _
  newname & "!R7C1", TableName:=PivotTableName, _
  DefaultVersion:=6
这段代码在我的机器和许多其他人的机器上运行得非常好。但对于少数人来说,这是抛出运行时错误 5:无效的过程调用或参数。可能是什么问题?

最佳答案

来自 PivotCaches.Create docs :
参数


姓名
必需/可选
数据类型
描述


版本
可选的
变体
数据透视表的版本。版本可以是 XlPivotTableVersionList 之一常数。


xlPivotTableVersionList包括以下值:


姓名
值(value)
描述


xl数据透视表版本2000
0
Excel 2000

xlPivotTableVersion10
1
Excel 2002

xlPivotTableVersion11
2
Excel 2003

xlPivotTableVersion12
3
Excel 2007

xlPivotTableVersion14
4
Excel 2010

xlPivotTableVersion15
5
Excel 2013

xlPivotTableVersionCurrent
-1
仅提供向后兼容性


我怀疑新版本的 Excel 可能会接受 6和 up 作为参数,但 2013 不应该。在任何情况下,这是一个可选参数,可以安全地省略。
最有可能DefaultVersion:=6也可以省略。

旁注:建议拆分 PivotCachePivotTable创作分为两步。

Dim pCache As PivotCache
Set pCache = ActiveWorkbook.PivotCaches.Create( _ 
                 SourceType:=xlDatabase, _
                 SourceData:= newname)

Dim pTable As PivotTable
Set pTable = pCache.CreatePivotTable 
                 TableDestination:=newname & "!R7C1", _
                 TableName:=PivotTableName)

关于excel - 创建数据透视表的过程或调用无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69032905/

相关文章:

c# - 从 C# 以编程方式创建 Excel VBA 代码和按钮

html - 从 Excel VBA 发送短信

excel - 循环遍历文件夹下的所有子文件夹和文件,并将最后修改日期信息写入Excel电子表格

ms-access - vbCompareMethod 的枚举成员中缺少 vbUseCompareOption

vba - 文本文件源上的 Excel QueryTable 因 Jet OLEDB 连接字符串而失败

excel - 在 Excel 函数上提取大写单词

vba - 如何检查用户窗体是否通过 "X"Windows 按钮关闭?

excel - 按电子表格字段中的数据替换行颜色

excel - VBA中如何使用不等于条件与通配符?

java - 你能用 Java 复制 Excel 中的 Floor 函数吗?