ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何运用VBA以筛选表指定区域内的姓名为条件从总表中筛选出相应的记录呢?

如何运用VBA以筛选表指定区域内的姓名为条件从总表中筛选出相应的记录呢?

作者:绿色风 分类: 时间:2022-08-18 浏览:96
楼主
0Mouse
Q:如何运用VBA以筛选表指定区域内的姓名为条件从总表中筛选出相应的记录呢?
示例:
筛选区域:

 
总表记录:

 
预期筛选出的记录:

 
A:代码如下:
  1. Sub 以筛选表指定区域内的姓名为条件从总表中筛选出相应的记录()
  2. Dim d As Object, rng As Range, arr, brr, i%, j%, k%
  3. Set d = CreateObject("scripting.dictionary")
  4. For Each rng In [B2:I7]
  5.     If rng <> "" Then
  6.         d(rng.Text) = ""    '将各个姓名添加到字典中
  7.     End If
  8. Next
  9. arr = Sheet1.[A1].CurrentRegion.Value
  10. ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
  11. For i = 2 To UBound(arr)
  12.     If d.exists(arr(i, 2)) Then    '如果总表记录中的姓名在字典中存在
  13.         k = k + 1    '计数
  14.         For j = 1 To UBound(arr, 2)
  15.             brr(k, j) = arr(i, j)
  16.         Next
  17.     End If
  18. Next
  19. [A9].Resize(Rows.Count - 8, j - 1).ClearContents
  20. [A9].Resize(k, j - 1) = brr
  21. End Sub
附件:
运用VBA以筛选表指定区域内的姓名为条件从总表中筛选出相应的记录.rar
2楼
纵鹤擒龙水中月
学习了
3楼
sharkzhou
这个有用哦

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap