我正在尝试使用数组来过滤多个值,而不用对数据进行硬编码。我想创建一个循环,该循环将遍历每个条件具有可变大小(1个标准或3个标准)的列表。以下是数据外观的示例:
A B
100 A
200 A
300 B
400 B
500 B
600 B
700 C
我希望代码采用与“ A”相关的所有值-因此,将100和200用作过滤的值,然后使用与“ B”相关的所有值-300、400,和500等。
Sub FilterMulti2()
Dim i As Integer
Dim ar(1 To 20) As String
For i = 2 To ThisWorkbook.Worksheets("Sheet1").Range("A10000").End(xlUp).Row + 1
ar(i - 1) = Sheet1.Range("A" & i - 1)
Next i
ThisWorkbook.Worksheets("Sheet2").Range("A1").AutoFilter 4, ar, xlFilterValues
'Code****
ThisWorkbook.Worksheets("Sheet2").Range("A1").AutoFilter
End Sub
目前,我的代码仅适用于一个列表,但我需要做进一步的工作,以便代码区分要过滤的项目。
谢谢
编辑: 因此,在查看@badja发布的文章后,我已经更新了代码。这是代码:它将在ar2中存储“ A”和“ B”,但我不知道如何将其用作第一个数组将用于过滤哪些项目的标准。
Sub FilterMulti2()
Dim i As Integer
Dim ar(40) As Variant
Dim ar2(40) As Variant
For i = 2 To ThisWorkbook.Worksheets("Sheet1").Range("A10000").End(xlUp).Row + 1
ar(i - 1) = Sheet1.Range("A" & i - 1)
ar2(i - 1) = Sheet1.Range("B" & i - 1)
Next i
ThisWorkbook.Worksheets("Sheet2").Range("A1").AutoFilter 4, ar, xlFilterValues
'Code****
ThisWorkbook.Worksheets("Sheet2").Range("A1").AutoFilter 'Turn autofilter Off
End Sub
答案 0 :(得分:1)
使用类似tihs
Dim ar(1 to 20, 1) As String
这将使“桌子”下移21张,对位2张
我以前没有使用过这些数组,但是基本上它们是花式表
请查看this resource,以获得有关多维数组的精彩文章