繁体   English   中英

带阵列的自动过滤条件

[英]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

开始于:

在此处输入图片说明

并运行:

Sub Macro7()
    Dim ary(1 To 3) As String
    ary(1) = "Alice"
    ary(2) = "Boris"
    ary(3) = "James"
    ActiveSheet.Range("$A$1:$D$22").AutoFilter Field:=3, Criteria1:=ary, Operator:=xlFilterValues
End Sub

将产生:

在此处输入图片说明

我有类似的问题。

我正在尝试使用数组作为标准,但我的标准(当前为 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM