我正在尝试根据同一范围内列表框中的用户输入过滤多个过滤器。
但是,出于某种原因,autosort
方法仅使用测试中的最后一个条件对目标范围进行排序。
我到处搜索,测试了数组解决方案(将列表信息读入数组),为工作表上的过滤器编写一系列值,更改变量类型/运算符无济于事。什么都行不通。
感谢您抽出时间阅读本文,如果有人能帮助我,我将不胜感激。
dim lifecycle as range
dim List2String as string
Set lifeCycle = defineColRange(startWs, "Lifecycle Comments (Saks)", True, False)
For i = 0 To ListBox2_Lifecomments.ListCount - 1
'looping though the listbox2 to retrieve values
List2String = ListBox2_Lifecomments.List(i)
startWs.UsedRange.AutoFilter Field:=lifeCycle.Column, Criteria1:="<>" & List2String
Next i
startWs.UsedRange.SpecialCells(xlCellTypeVisible).Interior.Color = rgbLightPink 'testing to see if filter works
答案 0 :(得分:0)
经过多次挖掘和重新思考,基本上我在问错误的问题。
问题陈述应该是:&#34;如何过滤不等于多个标准的范围?&#34; 这里记录了:Explaination of why .autosort doesn't work with not equal to with multiple criterias.
讨论了几个解决方案:
使用另一列来帮助您确定要实现的结果。在我的例子中,它将循环遍历所有值 用户输入,并在另一列上输出true / false 比较,然后过滤该帮助列以解决此问题 问题
使用不可能的值进行过滤,这是情境性的。例如,如果要过滤数字,请为其设置outofbound标准 上面的解释链接中给出的非数字。
编写代码以隐藏已经过滤的标准,并一次过滤剩余标准所剩下的内容。
使用高级过滤器
希望这有助于将来可能遇到同样问题的其他人。