[英]Autofilter Criteria with Array
我一直在寻找解决方案,但在网上找不到任何可以完全解释正在发生的事情的内容。 我看了一些其他帖子,但它们似乎都有些不足。
当我运行这段代码时,它运行良好(正如它所记录的那样)。
ActiveSheet.Range("$A$1:$AL$1002").AutoFilter Field:=17, Criteria1:=Array( _
"73578", "78759", "78765"), Operator:=xlFilterValues
但是当我试图让它更健壮时,它失败了。 我想将 Criteria1 参数更改为已存储的数组。
我正在尝试使以下内容起作用。
ActiveSheet.Range("$A$1:$AL$1002").AutoFilter Field:=17, _
Criteria1:=Array(StoredArray.Values), Operator:=xlFilterValues
我已经存储了数组,无论如何我都对其进行了操作,但是我还没有得到任何工作。 我还尝试创建一个与录制的宏完全相同的字符串,但这也不起作用。
Dim StoredArrayString as Variant
StoredArrayString = "73578"", ""78759"", ""78765"
ActiveSheet.Range("$A$1:$AL$1002").AutoFilter Field:=17, _
Criteria1:=StoredArrayString, Operator:=xlFilterValues
感谢这里的帮助我花了很多时间在 MSDN 上试图研究这个问题,但找不到解决方案。
我认为您的问题在于您如何定义数组。 试试这个。
Dim StoredArrayString As Variant
StoredArrayString = Array("73578", "78759", "78765")
ActiveSheet.Range("$A$1:$AL$1002").AutoFilter Field:=17, _
Criteria1:=StoredArrayString, Operator:=xlFilterValues
我有类似的问题。
我正在尝试使用数组作为标准,但我的标准(当前为 1/1/2023)是动态的并且位于另一个工作表中。 例如,如何获取代码以从其他工作表(Sheet3)中选取此条件。
'
' data_test_2 Macro
'
'
With Worksheets("LNG_PORTFOLIO_2023_SG_HIST").Range("A1")
.AutoFilter Field:=28, Operator:=xlFilterValues, Criteria2:=Array(1, "1/1/2023")
End With
End Sub```
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.