我是新来的。希望你能耐心点。
**我的目标:**自动过滤,但过滤器是在一个可编辑的表中,以方便调整过滤器。因此,我在代码中使用了定义的名称。
定义的名称:
- ShName -用户名
1.第1列-色谱柱编号
1.过滤器1 -第一个过滤器,这样我的目标也是数组形式的过滤器,即,不必手动将代码修改为Criteria:= Array(Range().Value),我可以简单地将Criteria:= Range().Value
The Table
| | B| B |
| --|--|--|
| 1 |上校|滤波器|
| 2 |1 (列1)| 一个值 (筛选器1)|
| 3 |2 (Col2)|(值1,值2,值3)(筛选器2)|
- B3仅指1个过滤器,而B3指阵列
我的验证码:
Sub filter()
Worksheets(Range("ShName").Value).Activate
If IsEmpty(Range("Col 1").Value) = True Then
Go To Done
Else: ActiveSheet.Range("A1").AutoFilter Field:=Range("Col1").Value, Criteria:=Range("Filter1"), Operator:= xlFilterValues 'Error starts to pop up
End If
If IsEmpty(Range("Col 2").Value) = True Then
Go To Done
Else: ActiveSheet.Range("A1").AutoFilter Field:=Range("Col2").Value, Criteria:=Range("Filter2"), Operator:= xlFilterValues
End If
Done:
End Sub
字符串
**我的问题:**在AutoFilter中调用定义的名称时立即弹出错误
感谢你的帮助谢谢
1条答案
按热度按时间rvpgvaaj1#
Col_1
是可以接受的选项。Exit Sub
而不是Goto
,以改善程式码的可读性和可维护性。Value1,Value2,Value3
(不带括号和空格)为Filter2
,很容易用Split
函数为第二个过滤器生成一个数组。字符串
Split function
AutoFilter object (Excel)的
顺便说一句,通过在下面建议的布局中组织单元格,可以更方便地在工作簿中创建和管理定义的名称。
的数据