gpt4 book ai didi

excel - 基于一列值的 Excel VBA 过滤表

转载 作者:行者123 更新时间:2023-12-02 00:34:44 29 4
gpt4 key购买 nike

我有一个表,我想按其中一列中的值过滤行。用于过滤的值存储在单独的列中,而不是在表中。这是我到目前为止所拥有的:

Dim table1 As ListObject
Dim range1 As Range
Set range1 = ActiveSheet.range("AM23:AM184")
'get table object
table1.range.AutoFilter Field:=3, Criteria1:=???

我不知道该用什么作为标准1。我知道它需要是一个数组,我可以将其设置为类似 Array("12","2","13") 的值,但我需要它等于 range1 给出的范围中指定的值。任何帮助将不胜感激。

编辑:我已经能够通过执行 range1.Value 将范围值放入数组中,然后将 Variant 转换为字符串数组。这并没有像我想要的那样工作,因为它只是将我的过滤器设置为数组中的最后一个值。例如,如果我的数组包含 ID(“12”、“44”、“13”、“22”),并且我将 Criteria1 设置为该数组并运行它,则过滤器仅选择了 22 个,所有其他数字都被取消选择,包括12、44 和 13。

最佳答案

我明白了!我曾尝试重新编码,但第一次尝试时,由于与一行代码关联的行太多,它给了我一个不完整的程序。所以我重新录制了录音,给了我完整的代码,结果发现我遗漏了一些东西。完整代码如下:

Dim range1 As range
Set range1 = ActiveSheet.range("AM23:AM184")
Dim var1 As Variant
Dim sArray() As String
Dim i As Long
var1 = range1.Value

ReDim sArray(1 To UBound(var1))

For i = 1 To (UBound(var1))
sArray(i) = var1(i, 1)
Next

ActiveSheet.ListObjects("Table1").range.AutoFilter Field:=3, Criteria1:=sArray, Operator:=xlFilterValues

“Operator:=xlFilterValues”是我第一次录制宏时错过的关键部分,因为录制过早停止了

关于excel - 基于一列值的 Excel VBA 过滤表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15977684/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com