Excel VBA применяет фильтры для определенных c элементов строки - PullRequest
0 голосов
/ 01 февраля 2020

Данные показывают зарплату врачей, соответствующую их почтовому индексу. Мне нужно отобразить сумму зарплаты врачей-мужчин и женщин в возрасте от 25 до 30 лет, имеющих почтовый индекс, начиная с SW15 или SW16. Существует 1000 почтовых индексов, но должны отображаться только данные для почтовых индексов, начинающихся с SW15 и SW16. Я сделал это, но не получил требуемый результат.

Dim pvItem As PivotItem

For Each pvtitem In Sheets("Sheet1").PivotTables("PivotTable").PivotRow("POSTCODE").PivotItems
    If (pvItem.Name = "SW15" Or pvItem.Name = "SW16") Then
        pvItem.Visible = True
    Else
        pvItem.Visible = False
    End If
 Next pvtitem  

1 Ответ

0 голосов
/ 01 февраля 2020

Чтобы проверить, начинается ли имя элемента сводки с SW15 или SW16, попробуйте ...

If (Left(pvItem.Name, 4) = "SW15" Or Left(pvItem.Name, 4) = "SW16") Then

Кстати, PivotRow не является членом объекта PivotTable. Кроме того, у вас есть пара орфографических ошибок. В любом случае, вот другой способ ...

Dim pvItem As PivotItem

With Sheets("Sheet1").PivotTables("PivotTable1").PivotFields("POSTCODE")
    .ClearAllFilters
    For Each pvItem In .PivotItems
        If (Left(pvItem.Name, 4) <> "SW15" And Left(pvItem.Name, 4) <> "SW16") Then
            pvItem.Visible = False
        End If
    Next pvItem
End With

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...