我很难过……过去几个月一直在构建 PowerPivot 销售报告,并在此过程中自学 VBA 和 DAX。我的报告有几个可以通过 VBA 按钮选择的预配置 View ,在您关闭工作簿并重新打开它之前,它们完全可以正常工作。每次第一次打开工作簿时 - VBA 代码在第一行 AddDataField CubeFields 代码中出错。就好像 excel 没有预先计算我要添加的度量。
如果我在数据透视表中手动删除/添加一个值,然后运行 VBA 代码,它将完美运行。如果我打开 PowerPivot 管理数据窗口然后关闭它,VBA 代码运行得非常好。关于手动更改数据透视表中的值或只是打开 PowerPivot 数据选项卡的某些操作会提示 Excel 预先计算所有度量。这是每次挂断的确切代码行:
Worksheets("Dealer Install Sales").PivotTables("PivotTable1").AddDataField Worksheets("Dealer Install Sales").PivotTables( _
"PivotTable1").CubeFields("[Measures].[Sum of INVOICE_QTY]"), _
"PIECES"
如何强制excel在打开工作簿时自动计算所有度量?
最佳答案
我认为可能发生的是此 joy-of-data 中描述的行为。博客文章。
换句话说,在数据透视表之外创建的数据透视表中使用的度量在某些情况下被“遗忘”。一种解决方案是在数据透视表字段列表中创建一个新度量(右键单击字段列表并添加度量),它只是引用原始度量,例如=[测量名称]。
在您的代码中,引用新的度量名称,当您这样做时,应该刺激数据模型返回原始度量的值,而不是跌倒。
关于VBA AddDataField CubeFields - 错误 1004,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50521545/