Как получить фактические сводные данные из первого поля строки с помощью VBA - PullRequest
0 голосов
/ 27 апреля 2020

Спасибо за вашу помощь в прошлом. Я снова застрял в чем-то, и я не могу решить это после стольких попыток, и мне снова нужна ваша помощь.

Я хочу извлечь значения 1-го поля строки, которые отображаются в сводной таблице после применения всех фильтры. Код ниже предоставляет ВСЕ значение 1-го поля строки, хотя в сводной таблице отображаются только 5 значений.

Проверьте снимок экрана здесь:

image

Как на изображении выше, я хочу только 7,41,60,61,62 Однако значения l oop работает для всех 80 SN.NO источников.

Sub GetRowItems()

    Dim pi As PivotItem
    Dim val As String

    'Set variables
    ThisWorkbook.Worksheets("Report").Activate
    Set pt = ActiveSheet.PivotTables(1)
    Set pf = pt.RowFields(1)

    'pt.PivotFields(pf.Name).DataRange.Select
    If pf Is Nothing Then Exit Sub

    For j = 1 To pf.PivotItems.count
        'MsgBox pf.PivotItems(j).Name
        val = pf.PivotItems(j).Name
    Next j

End Sub

1 Ответ

0 голосов
/ 27 апреля 2020
Sub GetRowItems()

ThisWorkbook.Worksheets("Report").Activate

Set pt = ActiveSheet.PivotTables(1)
Set pf = pt.TableRange1.Columns(1)

If pf Is Nothing Then Exit Sub
pf.Select

    For Each cell In Selection.Range(Cells(2, 1), Cells(Selection.Rows.Count - 1, 1))
    'Because you have Grand Totals for rows <Selection.Rows.Count - 1>
    'Else <Selection.Rows.Count>
    Debug.Print cell
    Next

End Sub
...