我一直在构建一个大型宏,它使用表来传输一些过滤后的数据。当表过滤器应用过滤器并且表中没有肯定结果时,表中的整个数据集将被复制而不是不复制任何内容。
我有一些想法,但是它们开始变得复杂,并且我使用这种方法创建了一系列表,因此我正在寻找一种更简单的方法来避免完整的数据副本,而不打算复制这些值。
ActiveSheet.ListObjects("iexp_period").Range.AutoFilter Field:=1, Criteria1 _
:=Array("Asset", "Asset(Rc)", "LVP", "LVP(Rc)"), Operator:=xlFilterValues
Range("iexp_period").Copy
因此,如前所述,如果表没有过滤结果,即使复制时所有行都被隐藏,此副本也会复制整个表的数据。
请问有避免这种情况的快速方法吗?
答案 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
我希望这对您有所帮助:)