簡體   English   中英

VBA篩選器然后將行復制到新表嗎? Excel 2007

[英]VBA filter then copy rows to a new sheet ? excel 2007

我需要一種復制帶有數據的行的方法,該方法一直是過濾器用戶自動過濾器

我的問題是我不知道為什么,但是當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進行編碼,所以我在問如何復制已過濾的行,或者是否偶然知道周圍的大小限制問題,對

這樣的事情應該為您工作:

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

我相信這會在2007年生效,但我只能在2013年對其進行測試(並且有效)。 嘗試使用粘貼特殊的“ SkipBlanks”選項:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM