Я хочу иметь возможность фильтровать слайсер по содержанию значения ячейки, которое я набираю вручную на листе.
У меня есть слайсер "country_of_origin", который управляет тремя сводными таблицами«заявки», «решения», «приглашения».Я хотел бы отфильтровать слайсер по «стране происхождения», которую я ввожу вручную в ячейку B2, не прокручивая весь список стран в списке слайсеров.
Я пытался записать макрос, но это былодля меня это не решение, потому что оно не будет работать, если я вручную введу название страны в ячейку на листе.Выглядело это так:
slicer_Country_of_origin")
.SlicerItems("ALBANIA").Selected = True
.SlicerItems("AFGHANISTAN").Selected = False
.SlicerItems("ALGIERIA").Selected = False
.SlicerItems("ARMENIA").Selected = True
End With
End Sub
Далее я нашел на форуме mrexcel.com код, скопировал его, изменив имя слайсера на «страну происхождения» и положение ячейки на «$ b $ 2».".
sub Macro6()
' sheet module
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sc As SlicerCache, si As SlicerItem
If Target.Address = "$B$2" Then
Set sc = ActiveWorkbook.SlicerCaches("Country of origin") ' desired slicer
sc.ClearAllFilters
For Each si In sc.SlicerItems
If si.Caption = CStr(Target) Then
si.Selected = True
Else
si.Selected = False
End If
Next
End If
End Sub
После запуска этого макроса после строки sub Macro6()
я получил сообщение:
Ошибка компиляции: Ожидаемый конец подпрограммы.
Я хотел бы преобразовать / исправить код, чтобы он соответствовал моим потребностям, а именно: фильтровать срезы по содержанию значения ячейки, которое я печатаю вручную на листе. **