2012-12-17 148 views
1

我有疑问,一张纸可以有多个枢轴表吗?如果有的话,是否有任何方法可以在工作表中定义他们的名字?枢轴表创作

我写下面的代码来更新/刷新在不同片材限定的枢转的表,但以下错误gettings:

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 

ERROR:标超出范围

灿你帮我在这里?

UPDATE

我有一个数据Excel工作表在下面的格式:

在同一个Excel的另一片透视程序的
Name Fruits Condition of Fruits 
===== ====== ==================== 

Ram Apple  Good 

Jadu Apple  Bad 

Tina Orange  Good 

Ram Orange  Good 

Tina Apple  Bad 

Ram Apple  Bad 

输出,例如在片材(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数据透视表概念创建。

你可以建议任何代码设置,为上面的枢轴创建?

谢谢

+0

请参阅我的更新!并帮助我解决问题。 –

+0

任何可以告诉我我需要做什么来消除这种错误? –

+0

请使用调试器来查看哪个语句确实导致错误。我现在正在猜测......在像PivotTables()这样的集合中,第一个索引元素的索引为0,所以也许 - 如果每张纸上只有一个表,索引= 1比你拥有的高,因此“Subscript out of范围“ – MikeD

回答

3

您可以在一张表中有多个数据透视表。创建它们,然后右键单击它们,选择“数据透视表选项...”并查看/更改它们的名称。通常情况下,你不需要做这个,因为Excel会自动命名表[数据透视表* N *]与ň为1,2,3,...

但是您应避免使用多个如果你经常改变它们的外观(例如添加或删除列和/或行),则可以在单张纸上安装枢轴

编辑:回复您的评论...是的,您可以...在Excel2010.VBA中的相关对象/方法有:

ActiveWorkbook.PivotCaches.Create(SourceType:=..., SourceData:= ..., Version:=...).CreatePivotTable TableDestination:=..., TableName:=..., DefaultVersion:=... 

源数据通过PivotCache对象进行定义,该对象是通过连接的CreatePivotTable方法定义的目标。

后来您使用

ActiveSheet.PivotTables(...).PivotFields(...).Orientation and .position 

ActiveSheet.PivotTables(...).AddDataField ...PivotFields(...), "header", xlSum 

指定数据透视表的设计。

最好是开始录制一个宏,创建一个数据透视表,停止录像机并检查生成的代码。

+0

感谢您的帮助,但是我还有一个疑问,那就是我们可以创建数据透视表吗? –

+0

是的,你可以...看到编辑我的回答 – MikeD

+0

请参阅我的主题描述更新。 –