2012-12-17 147 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

請參閱我的主題描述更新。 –