Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2434|回复: 8

[已解决]用VBA代码处理多列查询问题?

[复制链接]
发表于 2013-5-1 19:13 | 显示全部楼层 |阅读模式
本帖最后由 森林木007 于 2013-5-2 14:13 编辑

请求老师帮助:
1\输入起止日期,不输入具体列名字是全部;
2\输入起止日期,再输入"部门"或部门&工号姓名"或"产品代码"或"订单代码"查询全部
3)NUP%6{{2S3W]]M(M]ZT6T.jpg

VBA多条件查询.rar (14.84 KB, 下载次数: 13)
发表于 2013-5-1 20:58 | 显示全部楼层
用高级筛选,查询条件略微改下就成了。
回复

使用道具 举报

发表于 2013-5-1 20:58 | 显示全部楼层
回复

使用道具 举报

发表于 2013-5-1 21:18 | 显示全部楼层
高级筛选的话,你的条件标题改下,对于日期就用公式就方便多了。

评分

参与人数 1 +1 收起 理由
森林木007 + 1 多谢提示.

查看全部评分

回复

使用道具 举报

发表于 2013-5-1 22:02 | 显示全部楼层    本楼为最佳答案   
直接点 查询 按钮

VBA多条件查询.rar (17.32 KB, 下载次数: 50)
回复

使用道具 举报

发表于 2013-5-1 22:18 | 显示全部楼层
代码里对于lCondition的判断,直接换成逻辑变量更好。

评分

参与人数 1 +1 收起 理由
森林木007 + 1 多谢提示帮助!!

查看全部评分

回复

使用道具 举报

发表于 2013-5-2 09:33 | 显示全部楼层
将 o2,p2 的内容改为 "日期"
然后在 O3 输入日期 ">=2013/3/1"
           P3 输入日期 "<=2013/4/25"

运行一下代码,就将该日期范围内的数据都提取出来了

如果是要按月查询,在 U2 输入 "按月查询" ,也可以不输入,只做为提示用
U3 输入公式  "=MONTH(数据区!B3)=4"  该公式查询 4 月的数据,B3 为第一条数据记录位置
清除 o3,p3 的日期限定,

运行代码就查询出 4 月所有的数据了,

如果你还有其它条件,则在查找条件区域 "Range("O2:U3")" 中对应的字段下输入内容就行了

  1. Sub cc()
  2. Dim Hx As Long
  3.   With Sheet1
  4.     Hx = .Range("A65536").End(xlUp).Row
  5.     .Range("A2:M" & Hx).AdvancedFilter 2, Range("O2:U3"), Range("A1:M1"), False
  6.   End With
  7. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
森林木007 + 1 新方法,有很多帮助!

查看全部评分

回复

使用道具 举报

发表于 2013-5-2 09:37 | 显示全部楼层
补充一下,高级筛选是根据条件区域中设置的字段来查找的

该字段名称应该是数据源中存在的!!

你附件中R2单元中的  "部门&工号&姓名"  这样的字段在数据源中是不存在的,所以这样使用不能查找出你想要的

更多关于高级筛选的用法请看 向伟 老师的高级筛选

http://www.excelpx.com/thread-293078-1-1.html

评分

参与人数 1 +1 收起 理由
森林木007 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-5-2 14:25 | 显示全部楼层
hwc2ycy 发表于 2013-5-1 20:58
要不就用SQL查询

正在学习SQL知识.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 06:05 , Processed in 0.513830 second(s), 21 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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