获取已过滤ListObject的使用范围

时间:2019-05-28 16:37:38

标签: excel vba

我正在尝试将已过滤表格的可见单元格复制到另一张纸上。

尽管我读过,但我得到一个错误,Range.Address是一个无效的限定符,这是您必须引用列表对象范围的方式。

Sub TestRun()
    Dim strng As Range
    Dim lo_b1 As ListObject

    Set lo_b1 = x_bf1.ListObjects(1)
    Set strng = ThisWorkbook.Names("co_st").RefersToRange

    lo_b1.Range.Address.SpecialCells(xlCellTypeVisible).Copy strng

End Sub

1 个答案:

答案 0 :(得分:0)

这是一个小例子。从Sheet1中的ListObject开始:

enter image description here

这将应用过滤器并将可见行复制到其他位置:

Sub KopyTab()
    Dim rng As Range

    Set rng = ActiveSheet.ListObjects("Table1").Range

    rng.AutoFilter Field:=1, Criteria1:="mike"
    rng.Cells.SpecialCells(xlCellTypeVisible).Copy Sheets("Sheet2").Range("A1")

End Sub

结果:

enter image description here