【发布时间】:2012-12-17 07:30:34
【问题描述】:
我怀疑一张工作表可以有多个数据透视表吗?如果是这样,有什么方法可以在工作表中定义他们的名字吗?
我编写了以下代码来更新/刷新在不同工作表上定义的数据透视表,但出现以下错误:
Dim objExcel1,strPathExcel1
Dim objSheet1,objSheet2,objSheet3
Set objExcel1 = CreateObject("Excel.Application")
strPathExcel1 = "D:\AravoVB\Copy of Original Scripts\CopyofGEWingtoWing_latest_dump_21112012.xls"
objExcel1.Workbooks.open(strPathExcel1)
Set objSheet1 = objExcel1.ActiveWorkbook.Worksheets("Business Process Matrix")
Set objSheet2 = objExcel1.ActiveWorkbook.Worksheets("Workflow Status Matrix")
Set objSheet3 = objExcel1.ActiveWorkbook.Worksheets("Business Hierarchy Martix")
objSheet1.PivotTables(1).PivotCache.Refresh
objSheet2.PivotTables(1).PivotCache.Refresh
objSheet3.PivotTables(1).PivotCache.Refresh
错误: 下标超出范围
你能帮帮我吗?
更新
我有以下格式的 Excel 数据表:
Name Fruits Condition of Fruits
===== ====== ====================
Ram Apple Good
Jadu Apple Bad
Tina Orange Good
Ram Orange Good
Tina Apple Bad
Ram Apple Bad
Pivot 程序在同一个 excel 的另一张表中的输出,比如在 sheet(2) 中应该是 像这样:
Name Fruits Condition of Fruits
==== ====== ===================
Good Bad Total
==== ===== ======
Ram Apple 1 1 2
Ram Orange 1 0 1
Tina Apple 0 1 1
Tina Orange 1 0 1
jadu Apple 0 1 1
===================================
Grand Total 3 3 6
===================================
上述格式需要存在于工作表 (2) 的 Excel 中,只要工作表 (1) 中包含源数据,如第一个表所示。
我希望使用 Excel 数据透视表概念创建宏程序。
您能否为上述 Pivot 创建建议任何代码设置?
谢谢
【问题讨论】:
-
请看我的更新!并帮助我解决问题。
-
能否建议我在这里需要做些什么来消除此类错误?
-
请使用调试器查看究竟是哪条语句导致了错误。我现在在推测......在像 PivotTables() 这样的集合中,第一个索引元素的索引为 0,所以也许 - 如果每张表只有 1 个表,则索引 = 1 高于您所拥有的,因此“下标超出范围”
标签: excel vbscript excel-2007 vba