VBA学习(28):筛选并复制数据

在当前工作表列A中有一系列数据,用户在单元格C2中输入值,将列A中包含单元格C2的值的数据复制到列E中,如下图1所示。

图片

图1

可以使用下面的程序:

Sub GetSpecialValue()
 With ActiveSheet
   .Range("E2:E" & .Cells(.Rows.Count, 1).End(xlUp).Row).Clear
   .Range("A1").AutoFilter Field:=1, Criteria1:="=*" & .Range("C2").Value & "*", Operator:=xlAnd
   .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy
   .Range("E2").PasteSpecial
   .AutoFilterMode = False
   .Range("C2").Select
 End With
 Application.CutCopyMode = False
End Sub

如果想要去掉筛选结果中的重复值,可以在程序中添加一条语句:

.Range("E2").RemoveDuplicates Columns:=1, Header:=xlNo

完整的程序代码如下:

Sub GetSpecialValue()
 With ActiveSheet
   .Range("E2:E" & .Cells(.Rows.Count, 1).End(xlUp).Row).Clear
   .Range("A1").AutoFilter Field:=1, Criteria1:="=*" & .Range("C2").Value & "*", Operator:=xlAnd
   .Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy 
   .Range("E2").PasteSpecial
   .AutoFilterMode = False
   .Range("E2").RemoveDuplicates Columns:=1, Header:=xlNo
   .Range("C2").Select
 End With
 Application.CutCopyMode = False
End Sub

结果如下图2所示。

图片

图2

 技术交流,软件开发,欢迎微信沟通:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xwLink1996

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值