피벗 테이블 이름이 피벗 테이블 이름 인 피벗 테이블이 3 개 포함 된 Excel 작업 시트가 있습니다. 피벗 테이블 3과 활성 필드 이름은 각각 국가, 언어 및 프린터로 사용됩니다. 필요한 것은 각 피벗 테이블의 모든 데이터를 각 문자열 또는 문자열 배열로 가져 오는 것입니다. 어떤 도움이라도 매우 감사 할 것입니다.VBA의 피벗 테이블에서 데이터 검색
답변
빠른 & 당신을 얻으려면 더러운 하나; 하나의 선형 문자열에있는 피벗 테이블의 모든 셀 (";"로 구분) 이것은 사용할 방법과 속성에 대한 충분한 영감을 주어야합니다. 유의하십시오 : Tmp
은 무한히 큰 피벗 테이블을 저장할 수 없습니다. 크기가 크게 커지는 경우 파일에 Tmp
을 작성하는 것이 좋습니다. 도움이
Sub PTTest()
Dim SH As Worksheet ' the current worksheet from the colection of workbooks
Dim PT As PivotTable ' the current pivot table from the current worksheet
Dim PTC As Range ' the cell range of the current pivot table
Dim Tmp As String ' the buffer for concatenated cell values
Tmp = ""
' process all sheets, as Pivot table objects are contained by sheets
For Each SH In ActiveWorkbook.Worksheets
For Each PT In SH.PivotTables
For Each PTC In PT.TableRange1.Cells
' all cells in one buffer, seperated by ";"
' if you want to include page header cells, use
' "PT.TableRange2.Cells" instead
Tmp = Tmp & PTC & ";"
Next PTC
' *** do something *** with the buffer
' ok very simple we print it into the debugger's Immediate window
Debug.Print Tmp
' empty buffer for next pivot table
Tmp = ""
Next PT
Next SH
End Sub
희망 .... 행운
도와 주셔서 대단히 감사합니다. 그것은 잘게 작동합니다. 하지만 통합 문서의 모든 시트를 검토 할 필요는 없습니다. 지정된 것만. 그렇다면 어떤 변화가 있어야합니까? – 1355
이제 내부 루프 다음에 외부 루프에서 'Exit For'명령을 사용하고 있습니다. 그래서 첫 번째 워크 시트를 통해서만 갈 수 있습니다. 그게 내 필요도 .. 특정 시트에 피벗 테이블에 대한 – 1355
당신은 바깥 For Each SH를 제거하고 내부 루프를 "For Each PT for Worksheets ("Sheet1 ")로 다시 쓸 수 있습니다. 피벗 테이블" – MikeD
어떤 도움을 마이킹하시기 바랍니다 ?????? – 1355