2012-12-17 4 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 :첨자

수 범위를 벗어 너 나 좀 도와 줘? 2 (

이 같은 엑셀의 다른 시트에 피벗 프로그램의
Name Fruits Condition of Fruits 
===== ====== ==================== 

Ram Apple  Good 

Jadu Apple  Bad 

Tina Orange  Good 

Ram Orange  Good 

Tina Apple  Bad 

Ram Apple  Bad 

출력은, 시트에 말 : UPDATE

나는 아래의 형식으로 데이터를 엑셀 시트를

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 
=================================== 

위의 포맷이 필요 :)이 같은 해야한다 시트 (1)에 첫 번째 표에 표시된 소스 데이터가있을 때마다 시트 (2)의 Excel에 있어야합니다.

매크로 프로그램이 Excel 피벗 테이블 개념을 사용하여 만들길 원합니다.

위의 피벗 생성에 대한 코드 설정을 제안 할 수 있습니까?

감사

+0

내 업데이트를 참조하십시오! 이 문제를 해결하도록 도와주세요. –

+0

그런 오류를 없애기 위해 내가해야 할 일을 제안 할 수 있습니까? –

+0

디버거를 사용하여 정확히 어떤 문이 오류를 일으키는 지 확인하십시오. 나는 지금 추측하고있다 ... PivotTables()와 같은 컬렉션에서 첫 번째 인덱스 된 요소는 인덱스 0을 가지므로 아마 시트 당 1 개의 테이블 만 있으면 인덱스 = 1이 사용자의 것보다 높을 것이다. 따라서 "아래 첨자 중 범위 " – MikeD

답변

3

당신은 하나의 시트에 여러 피벗 테이블을 가질 수 있습니다. 그들을 생성 한 다음 마우스 오른쪽 버튼으로 클릭하고 "Pivot Table Options ..."를 선택하여 이름을 보거나 변경하십시오. 일반적으로 당신은 엑셀 자동으로 이름으로,이 작업을 수행 할 필요가 없습니다 테이블 [피벗 테이블 * N *] N 1, 2, 3, ... 인과

여러 것을 피하기해야하지만

자주 외모를 변경하는 경우 한 시트의 피벗 (예 : 열 또는 행 추가 또는 제거)

EDIT : 의견에 따라 ... Excel2010.VBA 관련 개체/방법은

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

원본 데이터는 연결 된 CreatePivotTable 메서드를 통해 정의 된 대상 인 PivotCache 개체를 통해 정의됩니다.

나중에 당신에 당신의 피벗 테이블 디자인을 지정

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

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

를 사용합니다.

매크로 기록을 시작하고 피벗 테이블을 만들고 레코더를 중지하고 생성 된 코드를 검사하는 것이 가장 좋습니다.

+0

당신의 도움에 감사드립니다,하지만 내가 가진 한 가지 더 질문은, 우리는 피벗 테이블을 programittacally 만들 수 있습니까? –

+0

네, 그럴 수 있습니다 ... 내 대답을 편집 참조하십시오 – MikeD

+0

제목 설명에서 내 업데이 트를 참조하십시오. –