Excel精英培训网

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

能否通过VBA筛选后提取非连续某几列内容?

[复制链接]
发表于 2019-11-6 14:34 | 显示全部楼层 |阅读模式
请教各位论坛大神,在vba中使用自动筛选后,如何提取非连续指定列的内容,要求如图,已上附件。等待高人指点!
(代码写在“提取工具”的工作薄中,点击提取数据,跳出路径选择框,手动选择“源数据”工作薄确定后,sheet2就是我想要得到的数据)

筛选条件:工种为“车工”、“钳工”、“焊工”
原数据表:


想得到的结果显示:


BOOK.rar

18.41 KB, 下载次数: 4

附件

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2019-11-6 17:10 | 显示全部楼层
先录制一个宏,再修改下参数就行了。下面代码主要部分都是录制的宏代码,只是修改了几个参数:
还有,最前面打开文件那段代码也是我加上去的,也不是录制宏的一部分,其他都是:

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim wb As Workbook
Set wb = Workbooks.Open(ThisWorkbook.Path & "\源数据.xlsx")
Range("A2:H" & [a10000].End(3).Row).Select
Selection.AutoFilter
ActiveSheet.Range("$A$2:$H" & [a10000].End(3).Row).AutoFilter Field:=5, Criteria1:=Array("车工", "焊工", "钳工"), Operator:=xlFilterValues
Range("A2:H" & [a10000].End(3).Row).Select
Selection.Copy
Windows("提取工具.xlsm").Activate
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("a1").Select
wb.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 06:13 , Processed in 1.490093 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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