Получить данные из сводной таблицы в Vba - PullRequest
2 голосов
/ 28 февраля 2011

У меня есть лист Excel, который содержит три сводные таблицы с именами сводных таблиц в виде PivotTable1 ... PivotTable3 и именами активных полей в качестве страны, языка и принтеров соответственно. Мне нужно получить все данные в каждой сводной таблице для каждой строки или массива строк. Любая помощь будет очень благодарна.

1 Ответ

2 голосов
/ 28 февраля 2011

Быстрый и грязный, чтобы вы пошли;все ячейки сводной таблицы в одну линейную строку, разделенные символом «;».Это должно дать достаточно вдохновения, какие методы и свойства использовать.Осторожно: 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

Надеюсь, это поможет ....

...