Я пытался заставить работать сводный фильтр, используя поле ввода. Я украл большую часть кода из http://www.ozgrid.com/VBA/hide-pivot-fields.htm и применял к своей электронной таблице и продолжаю получать ошибку несоответствия типов, которую я не могу понять. Пример был построен для чисел, и мне нужно фильтровать по тексту.
Средство поиска ошибок останавливается на функции Evaluate, но обе переменные определены как текстовые, поэтому я думаю, что это должна быть переменная Org. Любые предложения приветствуются - код ниже.
Sub HideByCriteria ()
Dim pt As PivotTable, pi As PivotItem
Dim Org As String
Dim strCri As String
Dim bHide As Boolean
Dim xlCalc As XlCalculation
Set pt = Sheets("Req Posting Status").PivotTables("PivotTable1")
strCri = InputBox("Enter Organization" _
& Chr(13) & "Valid Criteria Examples:" _
& Chr(13) & "HCS-CT for all HCS-CT orgs" _
& Chr(13) & "or CKS for any org that contains CKS", "HIDE AGE")
If strCri = vbNullString Then Exit Sub
strCri = Trim(strCri)
pt.ManualUpdate = True
With Application
xlCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
'On Error GoTo NonValidCriteria:
For Each pi In pt.PivotFields("Organization").PivotItems
Org = pi
bHide = Evaluate(Org & strCri)
pi.Visible = bHide
Next pi
pt.ManualUpdate = False
With Application
.Calculation = xlCalc
.ScreenUpdating = True
End With
Выход Sub