如何选择所有包含数据的行和列,然后使用多个条件进行过滤?
我录制了一个宏。
Sheet2.Activate
Sheet2.Range("$A$1:$L$85").AutoFilter Field:=12, Criteria1:=Array( _
"Apples", "Pineapple", "Oranges", "Mango", "Grapes", _
"Banana", "Papaya"), Operator:=xlFilterValues
Columns("A:L").Select
Selection.copy
Sheets("Food").Select
Range("A:L").Select
Sheet7.Paste'
我要选择A1到L1中的所有数据。但是我的代码仅适用于特定数量的行和列。如果数据从$A$1:$L$85
开始变化并且超过85行且超过L列,它将无法捕获所有需要过滤的数据。
答案 0 :(得分:0)
您实际上可以使用注释中提供的链接,但是可以尝试一下。
看来UsedRange
方法在最新的Excel版本(当前使用Office 365)中有所改进。
Dim lc As Long, lr As Long
Dim r As Range
With Sheet2
.AutoFilterMode = False
With .UsedRange
lr = .Rows.Count
'lc = .Columns.Count
lc = 12 '/* your column is bounded to L */
End With
Set r = .Range(.Cells(1, 1), .Cells(lr, lc))
r.AutoFilter Field:=12, Criteria1:=Array( _
"Apples", "Pineapple", "Oranges", "Mango", "Grapes", _
"Banana", "Papaya"), Operator:=xlFilterValues
r.SpecialCells(xlCellTypeVisible).Copy Sheet7.Range("A1")
End With