ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何利用vba代码进行数据的筛选及分表处理?

如何利用vba代码进行数据的筛选及分表处理?

作者:绿色风 分类: 时间:2022-08-17 浏览:88
楼主
kevinchengcw
Q: 如何利用vba代码进行数据的筛选及分表处理?
A: 下面通过一个例子来演示如何利用vba操作自动筛选,将数据拆分放入新表中的方法,代码如下:
  1. Sub test()
  2. Dim dic As Object, Arr, N%, Rng As Range, Ws As Worksheet
  3. On Error Resume Next    '设置容错语句,防止操作出错时卡住
  4. Application.ScreenUpdating = False  '因为要用到复制粘贴操作,关闭屏幕刷新提高速度
  5. Set dic = CreateObject("scripting.dictionary")  '创建字典项目,用来装载班级信息
  6. With Sheet1     '对源数据页进行操作
  7.     For Each Rng In .Range(.[a2], .Cells(.Rows.Count, 1).End(3))    '循环源数据中准考证号列各单元格
  8.         If Rng <> "" Then dic(Mid(Rng.Text, 3, 2)) = ""     '提取出班级信息,装入字典
  9.     Next Rng
  10.     Arr = dic.keys      '将提取到的班级信息内容赋值给数组,便于取用
  11.     For N = LBound(Arr) To UBound(Arr)      '循环取出已取得的班级信息
  12.         .[a2].CurrentRegion.AutoFilter field:=1, Criteria1:="=??" & Arr(N) & "*"    '对源数据进行筛选(筛选关键字为第3位开始的两个字符与当前班级信息相符的内容)
  13.         Set Ws = Worksheets.Add     '添加一个新的工作表
  14.         Ws.Name = Val(Arr(N)) & "班"    '更改为对应的班级名
  15.         .Cells.SpecialCells(xlCellTypeVisible).Copy Ws.[a1]     '将当前筛选到的结果复制到新表中
  16.         .[a2].CurrentRegion.AutoFilter  '取消筛选
  17.     Next N
  18. End With
  19. Set dic = Nothing   '清空字典项目
  20. Application.ScreenUpdating = True   '打开屏幕刷新
  21. End Sub
附示例文件。
分表.rar
2楼
zzmjxxy
利用vba代码进行数据的筛选及分表处理
请问:筛选内容如何按包含某些字符进行筛选和分表处理?
3楼
猴子
您好版主;我正在学习工作表的汇总和拆分,看了您的代码感觉好,可是您的附件无法下载啊、、、急**!我要下载附件学习。
4楼
凌乱然了
下来学习,谢谢
5楼
zsufox
多谢楼主!
6楼
gfp12345678
多谢楼主!

免责声明

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

评论列表
sitemap