VBA Pivot отмените выбор значений, чтобы выбрать одно значение - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь создать VBA, чтобы в итоге l oop через заданный список отфильтровывать одно значение за раз из сводной таблицы. Проблема в том, чтобы отменить выбор всех параметров и выбрать 1 значение. Как вы выполняете это?

Решение ниже (которое я получил, работает слишком медленно): ниже я пытаюсь выбрать 1-е значение, затем l oop через остальные, чтобы отменить их выбор и, наконец, выбирая значение, которое я хочу. Есть ли более быстрый способ сделать это?

With ActiveSheet.PivotTables("PivotTable2")
.PivotFields("Name").PivotItems(1).Visible = True
For i = 2 To .PivotItems.Count 'Error here
.PivotItems(i).Visible = False
Next
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Name")
    .PivotItems(SelectedPerson).Visible = True
End With
End With

1 Ответ

0 голосов
/ 01 мая 2020

Преобразование всех моих соответствующих комментариев в ответ.

.PivotItems в вашем коде относится к With ActiveSheet.PivotTables("PivotTable2"). Он должен ссылаться на поле сводной таблицы. Например,

ActiveSheet.PivotTables("PivotTable2").PivotFields(1).PivotItems.Count
'~~> OR something like
ActiveSheet.PivotTables("PivotTable2").PivotFields("Name").PivotItems.Count

Подробнее об этом можно прочитать в объекте PivotItems (Excel)

Даже если это решение слишком медленное, потребуется мне часами ждать полных данных до l oop через. Есть ли способ отменить выделение всего?

Для более быстрого способа вы можете удалить все фильтры в одном go (без зацикливания), а затем просто добавить соответствующий фильтр, как показано ниже

Dim ws As Worksheet

'~~> Change this to the relevant sheet
Set ws = Sheet1

With ws.PivotTables("PivotTable2").PivotFields("Name")
    .ClearAllFilters

    .PivotFilters.Add Type:=xlCaptionEquals, _
                      Value1:="SOME VALUE"
                      '~~> OR something like
                      '~~> Value1:= ws.Range("A1").Value
End With

Пробовал ссылаться как на ячейку, так и на прямой текст в VBA. Возможно ли, что значение как-то неверно отформатировано в сводных данных? Как в тексте в моей камере я ссылаюсь на что-то еще в Pivot? - Carlsberg789 24 минуты go

Снимок экрана в действии

enter image description here

...