Использование массива для проверки PivotItems.Name <> Array Then PivotItems.Visible = False - PullRequest
2 голосов
/ 26 июня 2019

Я пытаюсь использовать массив, чтобы проверить отфильтрованные сводные элементы в сводной таблице, чтобы увидеть, должен ли он быть видимым или нет.В настоящее время я жестко запрограммирован с кодом ниже.Тем не менее, я хотел бы использовать массив, когда у меня есть более одного элемента для проверки на фильтр.

Цель состоит в том, чтобы фильтровать только нужные элементы.

Supply = Array("X Marketplace", "Y Marketplace")

With PivFid
    For i = 1 To .PivotItems.Count
        If .PivotItems(i).Name <> "X Marketplace" Then .PivotItems(i).Visible = False
    Next i
End With

Это то, что я пытаюсь выполнить, но я не уверен, как обойти массив отфильтрованных элементов.

With PivFid
    For i = 1 To .PivotItems.Count
        If .PivotItems(i).Name <> Supply Then .PivotItems(i).Visible = False
    Next i
End With

1 Ответ

1 голос
/ 26 июня 2019

Вы можете использовать Application.Match, чтобы проверить это. В сочетании с IsError перед ним будет проверяться, не найдено ли текущее имя PivotItem во всем массиве Supply).

Код

Supply = Array("X Marketplace", "Y Marketplace")

With PivFid
    For i = 1 To .PivotItems.Count
        If IsError(Application.Match(.PivotItems(i).Name, Supply, 0)) Then .PivotItems(i).Visible = False
    Next i
End With

На всякий случай вам нужно показать остальные:

With PivFid
    For i = 1 To .PivotItems.Count
        If IsError(Application.Match(.PivotItems(i).Name, Supply, 0)) Then
            .PivotItems(i).Visible = False
        Else
            .PivotItems(i).Visible = True
        End If
    Next i
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...