如何循环Excel单元格filter
我有一个我想过滤值的列:
现在我只想循环过滤单元格
这就是我所做的:
For lin = 2 to lastLine If Not Plan11.Cells(lin, 1).Hidden Then //do something End If Next
但是我有超过50000个细胞……有没有更快的方法来做到这一点?
使用range
对象的SpecialCells
方法
with ws.Columns(1).SpecialCells(xlCellTypeVisible) '... do something. ' for instance: .Font.Bold = True end with
其中ws
是要使用的列“A”的工作表对象
您可以使用以下方法find过滤的单元
ActiveSheet.range("valid range for column").Rows.SpecialCells(xlCellTypeVisible)
然后你可以迭代结果并做一些事情。
例如,当我有一张桌子时,我可以这样做:
Dim lastRow lastRow = ActiveSheet.ListObjects("Table1").range.Rows.Count Dim range Set range = ActiveSheet.range("A2:A" & lastRow).Rows.SpecialCells(xlCellTypeVisible) For Each rCell In range.Cells MsgBox rCell.Value Next rCell