赞
踩
学到筛选的时候遇到一些小小的“坑”,记录下。
Sub 宏1()
' 宏1 宏
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$F$1048").AutoFilter field:=4, Criteria1:="财务部"
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("财务部").Select
Range("A1").Select
ActiveSheet.Paste
End Sub
Criteria1
自己手动写这段代码的时候,Criteria1写成Criterial,一运行就出错了。
查了好久没发现问题,后来上网查才知道,Criteria1后面是阿拉伯数字1!Criteria1后面是阿拉伯数字1!Criteria1后面是阿拉伯数字1!
??.SpecialCells
.SpecialCells可以很明显看出,这是选特定单元格的,但是前面怎么写呢?
录制的代码是这样,非常啰嗦,那么自己写怎么写呢?
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
琢磨很久,摸索出几种写法
(1)粗暴的把所有数据都写上
Range("a1:f1048").AutoFilter field:=4, Criteria1:="销售2部"
Range("a1:f1048").SpecialCells(xlCellTypeVisible).Select
Selection.Copy Sheet10.Range("a1")
'可以简写成下面
Sheet1.Range("a1:f" & k).AutoFilter field:=4, Criteria1:=sht.Name
Range("a1:f" & k).SpecialCells(xlCellTypeVisible).Copy Sheets(sht.Name).Range("a1")
(2)选一个单元格,筛选后默认就是选中筛选后的数据
Sheet1.Range("a1").AutoFilter field:=4, Criterial1:="销售2部"
Selection.SpecialCells(xlCellTypeVisible).Copy Sheet10.Range("a1")
(3)用with貌似更方便些
Range("a1").Select
With Selection
.AutoFilter field:=4, Criteria1:="一车间"
.SpecialCells(xlCellTypeVisible).Copy Sheets("一车间").Range("A1")
- 官方文档解析
查看了该方法的描述,很详细,更糊涂了 本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。