excel - 在循环中过滤多个变量值
问题描述
我正在尝试使用数组来过滤多个值而不对数据进行硬编码。我想创建一个循环,该循环将遍历每个条件具有可变大小(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 以及ETC..
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 发布的文章后更新了代码。这是代码:它将'A's和'B's存储在ar2中,但我不知道我如何使用它作为第一个数组将用于过滤哪些项目的标准。
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
解决方案
使用类似 tihs 的东西
Dim ar(1 to 20, 1) As String
这将使“表”向下 21 和 2
我以前没有使用过这些数组,但基本上它们都是花哨的表
请查看此资源以获取有关多维数组的精彩文章
推荐阅读
- python - How to convert [element, element, element] into [(1, element), (2, element), (3, element)]
- javascript - 那么为什么不保持回调的顺序呢?
- filter - 如何根据 Tableau 中另一列的值过滤一列
- java - 片段选项卡未附加到上下文
- python - UnboundLocalError:在赋值之前引用了局部变量“userOrder”,但是之前以类似的方式调用它没有错误
- android - 将 http 网络流量限制为仅图像
- game-development - 程序生成的 2D 洞穴/地牢,用于类似横向卷轴的游戏
- amazon-web-services - 限制 AWS CDK 中的 AppSync 权限
- r - R函数漂亮()未显示预期结果
- amazon-web-services - 如何从 codebuild 输出工件中省略 CODEBUILD_SRC_DIR?