ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6552|回复: 16

EXCEL2007 “筛选”里面的“等于”和“包含”用VBA编一个

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-6-24 01:42 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
筛选22.rar (28.27 KB, 下载次数: 31) Private Sub CommandButton1_Click()
tj1 = Me.TextBox1.Text
tj2 = Me.TextBox2.Text
If tj1 = "" Then
  tj1 = " "
End If
If tj2 = "" Then
  tj2 = " "
End If
'下面这行中Field:=1中的1就是要筛选数据的列,根据实际情况自己修改一下吧。
  ActiveSheet.Range("$A$1:$B$10").AutoFilter Field:=6, Criteria1:="=" + tj1, _
        Operator:=xlOr, Criteria2:="=*" + tj2 + "*"
End Sub

Private Sub UserForm_Activate()
  Me.TextBox1.SetFocus
End Sub



高手你好:我有时要筛选第5列。有时要筛选第6列。所以我把第1列的1改成5。它就能筛选第5列了。
    然后我想复制一个同样的宏,再把第5列改成第6列,不就能筛选第6列了,但我改了,它还是筛选第5列。帮我看看,谢谢
   然后就是,我筛选了之后还要让它复原(即:还要把它全选上)它得把咱们编的这个对话框关了之后才能全选上,能不能不关这个对话框而还能全选上(即复原) 谢谢高手????
我总共有6千行  有时筛选E列 筛选E列时用的是“等于”;有时筛选F列筛选F列时用的是“包含”
EXCEL2007 “筛选”里面的“等于”和“包含”用VBA编一个像 工具栏 上的 快捷按钮
EXCEL2007筛选 等于  包含 快速打开方法
EXCEL2007筛选里面的“ 等于”和“包含”有什么快捷的打开方法。

如:直接放在工具栏上反正是能直接一点。
如:像超级链接那样,设好之后一点就出来

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-24 02:34 | 显示全部楼层
听说此站高手如云,怎不见动静

TA的精华主题

TA的得分主题

发表于 2009-6-24 14:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ActiveSheet.Range("$A$1:$B$10").AutoFilter Field:=6, Criteria1:="=" + tj1, _
        Operator:=xlOr, Criteria2:="=*" + tj2 + "*"
就这一句话,你自己好好看看,
Range("$A$1:$B$10").  '区域
Criteria1:="=" + tj1, '条件1
Operator:=xlOr   '或者
Criteria2:="=*" + tj2 + "*"  '条件2

TA的精华主题

TA的得分主题

发表于 2009-6-25 12:22 | 显示全部楼层
你用的这种方式,就是在筛选状态打开的时候才有效.
Private Sub CommandButton2_Click()
  ActiveSheet.Range("$A$5:$k$6000").AutoFilter
End Sub
你代码中的这句话
ActiveSheet.Range("$A$5:$k$6000").AutoFilter
就是开启关闭筛选状态,如何判定目前的筛选状态,是不是有属性

下面这两句就是判定筛选状态的,未打开,就打开,保证筛选的实现
Dim value As AutoFilter
value = ActiveSheet.Range("$A$5:$k$6000").AutoFilter
if vaule=nothing then
   ActiveSheet.Range("$A$5:$k$6000").AutoFilter
endif

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-25 19:10 | 显示全部楼层
谢谢高手们,问题已解习决
  在最后的附件就是已解决的问题

筛选3 2222.rar

32.58 KB, 下载次数: 96

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-25 19:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

打开“筛选”对话框时,无法编辑单元格

打开“筛选”对话框时,无法编辑单元格
    我用 VBA编了一个“筛选”的程序,让然后筛选到内容之后就是要修单元格里的内容,(不相同的内容,不能先编好。)可是“筛选”这个对框没关闭时无法修改单元格的内容,关闭之后可以,但这样反反复复很麻烦,每天要用到几百次,太麻烦。高手们有什么解决的办法。
谢谢
请下载最后的附件,筛选2222 看看  宏的快捷键 SHIFT+CTRL+Z

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-25 19:26 | 显示全部楼层

问题二:保护工作表时,打开自已编的筛选对话框时进行筛选时提示出错

问题二:保护工作表时,打开自已编的“筛选“对话框进行筛选时提示出错
   请高手帮忙,本人想尽了帮法

TA的精华主题

TA的得分主题

发表于 2009-6-26 09:43 | 显示全部楼层
第一个问题,容易解决,你只要在"userfrom1.show"后面加一句"doevents",就可以了;
第二个问题比较麻烦,据我所知保护的时候就是向你描述那样,你需要在代码增加去除保护进行筛选,筛选后再保护,来完成你需要的过程

同时带来一个问题,你是否设定编辑区域,否则筛选完成,恢复保护后,依然无法修改

TA的精华主题

TA的得分主题

发表于 2009-6-26 09:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
给你附件,按我上面所说,至于该不该加保护,或者设定可编辑区域,你自己把握,说实话实在没看懂你要做什么,感觉只是个替换功能

筛选3 2222.rar

33.55 KB, 下载次数: 33

TA的精华主题

TA的得分主题

发表于 2009-6-26 09:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
像你这样写代码,不如直接用高级筛选
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-5 01:58 , Processed in 1.065857 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表