ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于多表格筛选问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-12-21 10:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 bajifeng 于 2015-12-21 10:44 编辑
  1. Sub bajifeng()    'bajifeng
  2. Dim brr()
  3. s = [a2] & [b2] & [c2]
  4. b = IIf([b2] = 0, 0, 1)
  5. Sheets(1).UsedRange.Offset(4).Clear
  6. For Each sh In Sheets
  7.     i = 0
  8.     If InStr(sh.Name, "筛") = 0 Then
  9.         sh.Activate
  10.         lr = sh.[a65536].End(3).Row
  11.         arr = sh.Range([a2], Cells(lr, "g"))
  12.         For i = 1 To UBound(arr)
  13.             If b = 1 And InStr(arr(i, 1) & arr(i, 2) & arr(i, 4), s) > 0 Then
  14.                 n = n + 1
  15.                 ReDim Preserve brr(1 To 7, 1 To n)
  16.                 For j = 1 To 7
  17.                     brr(j, n) = arr(i, j)
  18.                 Next
  19.             ElseIf b = 0 And InStr(arr(i, 1) & arr(i, 4), s) > 0 Then
  20.                 n = n + 1
  21.                 ReDim Preserve brr(1 To 7, 1 To n)
  22.                 For j = 1 To 7
  23.                     brr(j, n) = arr(i, j)
  24.                 Next
  25.             End If
  26.         Next
  27.     End If
  28. Next
  29. Sheets(1).Activate
  30. [a5:g5].Resize(UBound(brr, 2)) = Application.Transpose(brr)
  31. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2015-12-21 10:43 | 显示全部楼层
>>>>>>>>>>>>>>>>>

03A 多表格筛选v3.rar

29.89 KB, 下载次数: 23

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2015-12-21 10:53 | 显示全部楼层
rio123 发表于 2015-12-21 10:35
另外,能否在关键语句后面给个备注,以后类似表格好自己更改,非常感谢

不擅长句句注解,
如果你对哪一句不明白,可以随时问我。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-21 10:54 | 显示全部楼层

另外再请教个问题,如果超从超过4个表格中提取数据的话,如何更改代码?如果方便的话,麻烦告知一下(可在代码后面加备注,便于我以后遇到相类似的问题自己更改),非常感谢!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-21 10:55 | 显示全部楼层
xcc324919 发表于 2015-12-21 10:23
看了gbgbxgb老师的图片感觉很有趣,不知道gbgbxgb是如何实现了,自己模拟了一个,基本上能到到gbgbxgb老师 ...

谢谢您的帮助,这段代码也能解决这个问题

TA的精华主题

TA的得分主题

发表于 2015-12-21 10:55 | 显示全部楼层
rio123 发表于 2015-12-21 10:54
另外再请教个问题,如果超从超过4个表格中提取数据的话,如何更改代码?如果方便的话,麻烦告知一下(可 ...

就是400个工作表,您不需要对代码做任何修改,您可以马上试试五六个表的情况。

TA的精华主题

TA的得分主题

发表于 2015-12-21 10:56 | 显示全部楼层
rio123 发表于 2015-12-21 10:54
另外再请教个问题,如果超从超过4个表格中提取数据的话,如何更改代码?如果方便的话,麻烦告知一下(可 ...

我用的是工作表遍历,有更广泛的适用性。
唯一需要修改的地方就是你三个关键字的位置,在代码的第3行
s = [a2] & [b2] & [c2]

TA的精华主题

TA的得分主题

发表于 2015-12-21 10:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你的工作表数量变了,没影响;
你每个工作表的行数变了,没影响;
搜索的3个关键字变了,有影响,请修改 s = [a2] & [b2] & [c2]

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-12-21 15:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
bajifeng 发表于 2015-12-21 10:58
你的工作表数量变了,没影响;
你每个工作表的行数变了,没影响;
搜索的3个关键字变了,有影响,请修改  ...

您好,如果我还有另外一个表格不需要进行查询的,如何表达!

TA的精华主题

TA的得分主题

发表于 2015-12-21 15:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
rio123 发表于 2015-12-21 15:12
您好,如果我还有另外一个表格不需要进行查询的,如何表达!

把 另一个表格的名字 说一下。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 18:46 , Processed in 0.027731 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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