У меня есть Excel-файл с несколькими листами. Sheet1 (Lagerliste) содержит кучу логистических данных. В основном: ЧТО ТАКОЕ ГДЕ
В отдельном листе я хочу отфильтровать все строки, содержащие определенное значение (Selfservice) в строке (B). Я делаю это с помощью VBA-макроса:
Private Sub Worksheet_Change(ByVal Target As Range)
' Filters LagerlisteHW Row B for the word "Selfservice" and copys the corresponding lines
' to the sheet "Selfservice" to rows with the headers deefined in Selfservice!A2:C2
' Define the search-criteria in Selfservice!L1:L2 (currently the word "Selfservice")
Sheets("LagerlisteHW").Range("B5").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Selfservice").Range("L1:L2"), CopyToRange:=Sheets("Selfservice").Range("A2:C2"), Unique:=False
End Sub
Это работает просто отлично. Отрицательный побочный эффект заключается в следующем:
Всякий раз, когда я изменяю ячейку в sheet1, фильтры перестают работать и даже исчезают из выбранной строки. Я должен вручную щелкнуть значок фильтра и выбрать фильтры, как и раньше. Это, о чудо, более чем неудобно. Кто-нибудь знает обходной путь и / или исправление для этой "функции"?
Кроме того, я не могу копировать и вставлять несколько раз - только один раз. Тогда ячейка больше не выделяется с помощью движущейся пунктирной линии.
Это из-за формата .xlsm или я что-то напутал?
С уважением