【问题标题】:Autofilter by inputting array by selecting a range of crieteria vba excel通过选择一系列crieteria vba excel输入数组来自动过滤
【发布时间】:2015-03-18 18:39:48
【问题描述】:

编辑 #1 我正在尝试根据条件将工作表自动过滤为数组,通过使用对话框选择范围来选择数组值。此外,此对话框的目的是选择多个需要排序的未排序值。这里是代码:

Sub Hyperlink_opener()
Dim Selrng As Range
Dim srch_cr As Variant
Set Selrng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)

srch_cr = Array(Selrng)
Sheets("DocLog").Select
ActiveSheet.Range("$A:$F").AutoFilter Field:=1, Criteria1:=srch_cr, Operator:=xlFilterValues
'ActiveWindow.SmallScroll Down:=-15

End Sub

这当前没有搜索我选择的单元格,并且给我一个错误范围类的自动过滤方法失败。

【问题讨论】:

  • 可以使用数组。我的这篇文章可能会感兴趣:yoursumbuddy.com/autofilter-vba-operator-parameters
  • 我认为我在将范围转换为数组时遇到问题,因为我做了一些更改,但我仍然收到错误。错误是范围类的自动过滤错误失败。

标签: arrays vba excel range autofilter


【解决方案1】:

只要您选择的范围包含文本或存储为文本的数字,就会执行此操作:

Sub Hyperlink_opener()
Dim Selrng As Range
Dim srch_cr As Variant

Set Selrng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)
srch_cr = Application.WorksheetFunction.Transpose(Selrng)
Sheets("DocLog").Range("$A:$F").AutoFilter Field:=1, Criteria1:=srch_cr, Operator:=xlFilterValues
End Sub

请注意,您需要转置范围以将其转换为一维范围。另外,不用Select工作表,参考即可。

如果您有需要过滤的数字,您可以将它们作为文本存储在过滤范围中,也可以通过解析数组将它们转换为代码中的文本。

【讨论】:

    【解决方案2】:

    根据您的Operator:=xlOr,我认为您希望根据多个条件进行过滤。

    根据Microsoft's docs(对于 Excel 2010),您可以有 2 个条件,Operator:= 告诉它如何处理这两个条件。在您的情况下,代码将是:

    ActiveSheet.Range("$a:$F").AutoFilter Field:=1, _
                 Criteria1:=Srch_Cr(1), Criteria2:=Srch_Cr(2), Operator:=xlOr
    

    您不能简单地将数组传递给 Criteria1 参数并假设 .AutoFilter 函数会弄清楚如何处理它。

    【讨论】:

    • 我有超过 2 个字段要在同一列上进行排序,这就是我添加范围选择对话框的原因。 Or 命令是为了确保所选范围内的所有字段在 autofiter 中都是可见的。由于标准的数量是动态的,这是否意味着对于我想要查找的 100 个文档,我将不得不编写标准 100 次而不是将它们输入到数组中???
    • 将数组传递给.AutoFilter 不是我知道的功能。它似乎也不符合 Criteria1 的文档(参考):The criteria (a string; for example, "101"). 如果你有它工作的例子,我最有兴趣看到它,因为它听起来确实非常 有用!
    猜你喜欢
    • 2016-07-17
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多