当过滤器没有数据时跳过表的副本

时间:2018-11-20 05:36:54

标签: excel vba filter

我一直在构建一个大型宏,它使用表来传输一些过滤后的数据。当表过滤器应用过滤器并且表中没有肯定结果时,表中的整个数据集将被复制而不是不复制任何内容。

我有一些想法,但是它们开始变得复杂,并且我使用这种方法创建了一系列表,因此我正在寻找一种更简单的方法来避免完整的数据副本,而不打算复制这些值。

ActiveSheet.ListObjects("iexp_period").Range.AutoFilter Field:=1, Criteria1 _
    :=Array("Asset", "Asset(Rc)", "LVP", "LVP(Rc)"), Operator:=xlFilterValues

Range("iexp_period").Copy

因此,如前所述,如果表没有过滤结果,即使复制时所有行都被隐藏,此副本也会复制整个表的数据。

请问有避免这种情况的快速方法吗?

1 个答案:

答案 0 :(得分:0)

我不确定自己是VBA的新手,但是当我刚刚研究类似问题时,http://www.vbaexpress.com/forum/showthread.php?40514-How-to-exclude-hidden-rows-columns-while-executing-a-VB-code帮了我很多忙。

我认为rows.hidden将是您要寻找的方法?也许您需要取消它。

这将是一些其他示例代码(不是我,而是艾伦·怀亚特!)

Sub NumberClients()
    Dim c As Range
    Dim j As Integer

    If Selection.Columns.Count > 1 Then
        MsgBox "Only select the cells you want numbered"
        Exit Sub
    End If

    j = 0
    For Each c In Selection
        If Not c.Rows.Hidden Then
            j = j + 1
            c.Value = j
        Else
            c.Clear
        End If
    Next c
End Sub

我希望这对您有所帮助:)