【发布时间】:2014-07-23 16:29:48
【问题描述】:
我查看了许多帖子,但似乎无法找到答案。基本上,我在 excel 中有一个应用了自动过滤器的表格(我通过按 ctr+L 创建了表格),并且我希望用户表单中的复选框来定义自动过滤器中的哪些复选框被选中。记录代码时,我得到:
Sub Testing1()
ActiveSheet.ListObjects("Table96").Range.AutoFilter Field:=1, Criteria1:= _
Array("company1", "company2", "company3"), Operator:=xlFilterValues
'then selecting one additional company
ActiveSheet.ListObjects("Table96").Range.AutoFilter Field:=1, Criteria1:= _
Array("company1", "company2", "company3", "company 5"), Operator:=xlFilterValues
End Sub
我想要做的是能够使用复选框从该数组中添加/删除公司。如果 excel 有选项,我希望与每个公司关联的每个复选框都将该公司添加到条件数组中。如果做不到这一点,我希望能够捕获该列上的现有条件,并将其与新条件一起应用。
另一种可能的解决方案是在表单关闭时对所有复选框运行一个循环,并以某种方式使用选中复选框的结果来定义范围。
非常感谢任何帮助!
我正在使用 Excel 2010
【问题讨论】:
-
我建议不要使用复选框,而是使用多选列表框(如果愿意,您也可以使其显示选项按钮)。那适合吗?
-
这可行。我找不到使用列表框定义范围的代码。你能给我一些建议吗?
标签: excel vba checkbox userform autofilter