我有一个简单的问题。在 VBA 中通过名称而不是索引号引用数据透视表的语法是什么?
例如,我可以这样写这一行:With ThisWorkbook.Worksheets("Sheet1").PivotTables(1).PivotFields("InvestorNumber")
End With
但我需要这样写:With ThisWorkbook.Worksheets("Sheet1").PivotTables("PivotTable1").PivotFields("InvestorNumber") End With
用“下标不在范围内”以第二种方式编写错误,尽管此工作表上肯定存在“PivotTable1”并且数据透视表的名称肯定是“PivotTable1”
关于语法有什么问题的任何想法?
MSDN 说它可以通过名称来引用,但没有给出一个例子来说明你是如何做到的。
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/pivottables-object-excel
谢谢
最佳答案
我找到了我的问题的答案。我仍在使用索引号来引用工作表,这引发了错误。所以这不起作用:With ThisWorkbook.Worksheets(1).PivotTables("PivotTable1").PivotFields("InvestorNumber")
End With
虽然看起来这确实有效:With ThisWorkbook.Worksheets("Sheet1").PivotTables("PivotTable1").PivotFields("InvestorNumber")
End With
如果要在对象引用中使用名称而不是索引号,则必须为所有成员使用名称;您显然不能混合使用索引和名称。
关于VBA:按名称而不是索引号引用数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49781619/