使用SpecialCells(x1CellTypeVisible)清除多个过滤的列

时间:2019-07-01 16:08:15

标签: excel vba excel-formula excel-2010

我设置了一个宏,该宏在K列上进行过滤,并清除第二个列,例如这些过滤量的AA列。

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

我有两个问题:

  1. 主要问题-现在如何更新以包括未从第5行向下连接的多个列,例如AJ,AS,BB等?

  2. 假设我的标题位于第4行中,那么在仅对第5行之后开始的行进行过滤时,以上内容是否会引起任何问题?

我可以从大学计算机时代读代码,但是请记住,我不是一个有技巧的人

当我只包含多行相同代码时,我遇到的一个问题是它是动态的,因此一旦清除了例如AA列,就会从K列的过滤器中删除一些行,从而没有清除所有相关单元格在AJ或AS中。

1 个答案:

答案 0 :(得分:0)

考虑到您将清除第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