【问题标题】:VBA Autofiler Dynamic ArrayVBA 自动过滤动态数组
【发布时间】:2014-02-10 15:50:40
【问题描述】:

我如何过滤动态数组,我一直在寻找,但我只能找到数组自动过滤的示例。我拥有的是一个动态数组,它根据复选框更改内容。 然后它会自动过滤动态数组,但我似乎无法让自动过滤器与动态数组一起使用。 使用 ActiveSheet

With ActiveSheet
    .AutoFilterMode = False
    .UsedRange.AutoFilter
    .UsedRange.AutoFilter field:=1, Criteria1:=userid
    .UsedRange.AutoFilter field:=7, Criterial:=Array_filter
End With

上面的文件过滤器有两列。我可以让第一个工作,但不是阵列一个。 请帮忙。

【问题讨论】:

    标签: arrays excel vba dynamic autofilter


    【解决方案1】:

    是的,你可以。但是你需要使用名为Criteria1的参数:

    .UsedRange.AutoFilter field:=7, Criteria1:= ... '<< with 1 (one) at the end
    

    而不是你现在拥有的l(el 字母)。

    答案下方的一些评论后的其他信息

    要从数组中获取所有元素,您需要在讨论的代码行中添加其他参数:

    .UsedRange.AutoFilter field:=7, Criteria1:=Array_filter, Operator:=xlFilterValues
    

    Operator:=xlFilterValues是解决问题的关键。

    【讨论】:

    • 该死的,这是一个愚蠢的错误,我花了几个小时试图找出问题所在。正如我之前从宏编译的第一个自动过滤器一样,我没有遇到问题。另一件事,我现在可以过滤动态数组,但它只过滤第一项而不是其余的。有什么想法吗?
    • 可能是范围引用的问题。试试.UsedRagne.Select 是否覆盖了您希望被过滤的区域。其次,您对第 1 列和第 7 列一起应用 2 个过滤器 - 应该有多个结果吗?
    • 如果适用,您还应该知道how to accept answer 了解此问题和其他问题。
    • 是的,但由于它只解决了我的一部分答案而不是完全,所以在我正确理解它的工作原理后,我将接受它作为答案。我不想打开另一个类似的问题。另外,当我提到第一项时,我指的是数组中的第一项。因为数组可以改变大小和存储项目。但是只有第一个项目被用作过滤条件,而不是所有项目。无论如何感谢您的帮助。
    • 谢谢,这一切都保存下来了,我曾经包含运算符,但是当我因为标准而无法让它工作时,我认为 XLfiltervalues 是它的原因。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    相关资源
    最近更新 更多