1

У меня есть 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 или я что-то напутал?

С уважением

0