如上图,打算在A 列筛选出F2:F4这三个单元格所包含的内容。要求在A列显示自动筛选后的内容,取消自动筛选后还可以恢复原样。如果只是筛选包含“a" "e" "f" 三个固定字母的我已经实现了,利用VBA宏
ActiveSheet.Range("$A$2:$A$1000").AutoFilter Field:=1, Criteria1:=Array( _
"a", "e", "f", "="), Operator:=xlFilterValues
可是我现在想要的是筛选的内容是可变的,也就是F2:F4这三个格子里的内容我可随时改动。希望能用宏实现,请高手支招。
假设你在F列使用三个选项,可用变量a1\a2\a3来表示,然后使用工作表事件来判断是否在F列改写内容,来触发自动筛选,代码如下:
在当前工作表底部标签名上点鼠标右键,选“查看代码”,在弹出的代码窗口中粘贴下面代码:
Private Sub Worksheet_Change(ByVal Target As Range)然后回到excel窗口,只要改变F列内容,就会自动进行筛选操作。
提示:如果相增加筛选内容,可增加第三行中的对应变量。
追问我不需要实时的响应,只要有一个宏能实现这个功能,我做一个按钮连接这个宏,当我想筛选的时候按下按钮运行这个宏就行了。而且活动区域要筛选的内容也并不是固定的只有三个
最难的地方就是如何将自动筛选内容在代码里变成筛选区域,这知道这么描述清不清楚。
那就重新做两段代码吧
第一段用于隐藏不符合F列要求的行
Sub 隐藏()第二段用于全部显示数据
Sub 显示()你在表中做两个按钮,指定这两个宏就行了。
追问这属于是“伪筛选“喽:-)
追答管它是什么呢,只要能解决问题就行啦。