Я пытаюсь выбрать только значения в сводной таблице1 из значений, хранящихся в диапазоне «str», исключая любой пробел в фильтре, выполнив следующий код, я не получаю значения в фильтре. Причина - проблема с этим кодом, и есть ли альтернативное решение для моих требований.
Dim star As String
Dim startRange As String
Dim lastRange As String
startRange = ThisWorkbook.Sheets("Peer Code").Range("J2").Address
lastRange = ThisWorkbook.Sheets("Peer Code").Range("J" & LR0).Address
star = startRange & ":" & lastRange
ThisWorkbook.Sheets("Conso_Input").Activate
Dim PI As PivotItem
With
Worksheets("Conso_Input").PivotTables("PivotTable1").PivotFields("FundCode")
.ClearAllFilters
For Each PI In .PivotItems
PI.Visible = WorksheetFunction.CountIf(Range(star), PI.Name) > 0
Next PI
End With
Новый код
ThisWorkbook.Sheets("Peer Code").Activate
Dim LR0 As Integer
LR0 = Range("J" & Rows.Count).End(xlUp).Row
Dim star As String
Dim startRange As String
Dim lastRange As String
startRange = ThisWorkbook.Sheets("Peer Code").Range("J2").Address
lastRange = ThisWorkbook.Sheets("Peer Code").Range("J" & LR0).Address
star = startRange & ":" & lastRange
ThisWorkbook.Sheets("Conso_Input").Activate
Dim PvtTbl As PivotTable
Dim PvtFld As PivotField
Dim PI As PivotItem
Dim MatchFound As Boolean, i As Long
' set the Pivot Table
Set PvtTbl =
ThisWorkbook.Sheets("Conso_Input").PivotTables("PivotTable1")
' set the Pivot Field
Set PvtFld = PvtTbl.PivotFields("FundCode")
ThisWorkbook.Sheets("Conso_Input").Activate
PvtTbl.ClearAllFilters
For Each PI In PvtFld.PivotItems
'For Each PI In .PvtTbl.PivotItems
PI.Visible = WorksheetFunction.CountIf(Range(star), PI.Name) > 0
Next PI