我正在使用此代码将已过滤表格的范围设置为仅可见单元格。
Set rngMyRange = Selection.SpecialCells(xlCellTypeVisible)
但是,如果只选择了一个单元格,那就是一个奇怪的错误,也就是说,代码选择了过滤表中所有使用的范围。
如果选择的区域大于一个单元格,则代码将按预期工作。有没有解决的办法?
答案 0 :(得分:0)
通常使用“选择”不是一个好习惯;我猜您只需要获取可见单元格的范围即可,您可以轻松地使用它:
Sub GetVisibleRangeOnly()
Dim tbl As ListObject
Dim rng As Range
'change the name of the table and worksheet as you need
Set tbl = Worksheets("Sheet1").ListObjects("Table1")
'Note: if there is no visible cell after filtraton rng IS NOTHING will be TRUE
Set rng = tbl.DataBodyRange.SpecialCells(xlCellTypeVisible)
End Sub