Очистка нескольких отфильтрованных столбцов с помощью SpecialCells (x1CellTypeVisible) - PullRequest
0 голосов
/ 01 июля 2019

У меня есть макрос, который я настроил, который фильтрует столбец K и очищает второй столбец, например столбец AA для этих отфильтрованных сумм.

Range("AA5", Range("AA5").End(xlDown)).SpecialCells(xlCellTypeVisible).ClearContents

У меня два вопроса:

  1. Основной вопрос - как мне теперь обновить, чтобы включить несколько столбцов, которые не связаны со строкой 5 и ниже, например, AJ, AS, BB и т. Д .?

  2. Предполагается, что мои заголовкив строке 4 приведенные выше вызовут какие-либо проблемы при фильтрации строк, начинающихся только после строки 5, или есть какой-нибудь лучший метод?

Я в порядке, читая код из моих компьютерных дней в колледже, но имейте в виду, что я не изворотливый человек

Проблема, с которой я столкнулся, когда просто имел несколько строк одного и того же кода, заключалась в том, что он будет динамическим и, следовательно, удалит несколько строк из фильтра в столбце K один раз.например, столбец AA был очищен, и таким образом не очищены все соответствующие ячейки в AJ или AS.

1 Ответ

0 голосов
/ 01 июля 2019

Учитывая, что вы будете очищать все видимые ячейки в каждом 9-м столбце, от строки 5 до последней использованной строки в столбце, этот макрос должен работать.

With ThisWorkbook.Sheets("Sheet3") 'change the sheet name as required

    'For loop to start at col AA and loop to the last column, jumping to every 9th column
    For i = 27 To .Cells(5, .Columns.Count).End(xlToLeft).Column Step 9

        'set the range from row 5 to the last row and clear visible cell in the column
        .Range(.Cells(5, i), .Cells(.Rows.Count, i).End(xlUp)).SpecialCells(xlCellTypeVisible).ClearContents

    Next i 'loop to the next column

End With
...