首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动筛选数组,不显示正确的值

自动筛选数组,不显示正确的值
EN

Stack Overflow用户
提问于 2019-04-26 18:35:00
回答 1查看 27关注 0票数 0

我试图在VBA中使用自动筛选,但当我尝试使用下面的代码时,它不显示筛选的值,它只显示空白。当我手动编写数组时,自动筛选功能正常工作。

代码语言:javascript
复制
Dim Filtersheet As Worksheet
Set Filtersheet = Worksheets("Filtersheet")
Dim str As String
Dim Arr As Variant
Dim Lastrow As Integer
Dim d As Long


Lastrow = Filtersheet.Cells(Filtersheet.Rows.Count, "B").End(xlUp).Row

With UserFormFilter
If .CheckBoxXX20.Value = True Then str = Chr(34) & "XX20" & Chr(34) & ","
If .CheckBoxY12.Value = True Then str = str & Chr(34) & "Y12" & Chr(34) & ","
If .CheckBoxZ1212.Value = True Then str = str & Chr(34) & "Z12/12" & Chr(34) & ","
If .CheckBoxXX10.Value = True Then str = str & Chr(34) & "XX10" & Chr(34) & ","
If .CheckBoxV12.Value = True Then str = str & Chr(34) & "V12" & Chr(34) & ","
If .CheckBoxZ2015.Value = True Then str = str & Chr(34) & "Z20/15" & Chr(34) & ","
If .CheckBoxXX1010.Value = True Then str = str & Chr(34) & "XX10/10" & Chr(34) & ","
If .CheckBoxY20.Value = True Then str = str & Chr(34) & "Y20" & Chr(34) & ","
If .CheckBoxZ2012Y20.Value = True Then str = str & Chr(34) & "Z20/12 & Y20" & Chr(34) & ","
End With

str = Left(str, Len(str) - 1)


Filtersheet.Range("A1", "t" & Lastrow).AutoFilter Field:=10, _ Criteria1:=Array(str), Operator:=xlFilterValues
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-26 19:10:40

您正在使用要查看的筛选器值创建一个(以逗号分隔)字符串,并将其传递给自动筛选器。您正在对该字符串使用Array-operator,但是,Array-operator仅看到一个值(str的内容),并将其转换为仅包含一个元素的数组。例如,您正在过滤一个字符串"XX20","Y12" -这将导致一个空表。

您需要的是一个数组,其中列表的每个值都有一个条目。您可以不使用Array,而是使用Split-command,它将字符串拆分成多个片段。不需要使用引号字符,因为我们已经在处理字符串了。

代码语言:javascript
复制
str = ""
With UserFormFilter
    If .CheckBoxXX20.Value Then str = str & "XX20" & ","
    If .CheckBoxY12.Value Then str = str & "Y12" & ","
    (...)
End With
str = Left(str, Len(str) - 1)
Filtersheet.Range("A1", "t" & Lastrow).AutoFilter Field:=10, _ 
     Criteria1:=split(str, ","), Operator:=xlFilterValues
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55865777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档