我需要一种方法来复制具有过滤器用户自动过滤器
的数据的行我的问题是我不知道为什么,但是当VBA从过滤器中复制并粘贴数据时,它会使两个纸张行限制一直下降到最大值。使我的文件大小更大,并增加更大的bc
Columns("B:B").Select
Selection.AutoFilter
ActiveSheet.Range("$B:$B").AutoFilter Field:=1, Criteria1:="<>"
Cells.Select
Selection.Copy
Sheets("Dump").Select
Cells.Select
ActiveSheet.Paste
我发现只有处理这个问题才能
Columns("B:B").Select
Selection.AutoFilter
ActiveSheet.Range("$B:$B").AutoFilter Field:=1, Criteria1:="<>"
'some how Copy all rows with data'
Selection.Copy
Sheets("Dump").Select
Cells.Select
ActiveSheet.Paste
我已经测试了没有VBA复制行,它确实没有任何错误,但我不知道如何编写VBA来做到这一点所以即时通讯 如何复制已经过滤的行,或者如果你碰巧知道那些不错的大小限制问题
答案 0 :(得分:0)
这样的事情对你有用:
Sub tgr()
Dim wsData As Worksheet
Dim wsDest As Worksheet
Set wsData = Sheets("Sheet1")
Set wsDest = Sheets("Dump")
With wsData.Range("B1", wsData.Cells(Rows.Count, "B").End(xlUp))
.AutoFilter 1, "<>"
.CurrentRegion.Copy wsDest.Range("A1")
.AutoFilter
End With
End Sub
答案 1 :(得分:0)
我相信这将在2007年有效,但我只能在2013年进行测试(并且有效)。尝试使用特殊的粘贴&#34; SkipBlanks&#34;选项:
ActiveSheet.Columns("B:B").AutoFilter
ActiveSheet.Range("$B:$B").AutoFilter Field:=1, Criteria1:="<>"
ActiveSheet.Columns("B:B").Copy
Sheets("Dump").Columns("B:B").PasteSpecial SkipBlanks:=True