簡體   English   中英

VBA:自動過濾范圍並復制到現有工作表

[英]VBA: autofilter a range and copy to existing sheet

對不起,我尋求幫助,但是我一直在嘗試很多宏,但是沒有一個工作做對了。 我不知道在哪里尋找解決方案。

  • 我有一個名為“ ABC”的工作表,其中有用戶輸入的數據,范圍為A:F(從A2開始到希瑟石下面,最多可以有20.000行)。
  • 在GI列上具有條件(是/否)

所以我想將所有行復制(粘貼值並保持格式設置)到A:F,其中G =“ Yes”復制到另一個名為“ ANAF ANG”的工作表到指定范圍內(從A2開始,相同的A:F)。

注意:從中復制數據的初始工作表在完成后必須清除過濾器。

怎么樣.. ?

您可以使用以下注釋代碼:

Sub main()
    With Sheets("ABC") '<--| reference your sheet
        With .Range("G1", .Cells(.Rows.Count, 1).End(xlUp)) '<--| reference its column "A:G" range from row 1 down to column "A" last not empty row
            .AutoFilter Field:=7, Criteria1:="yes" ''<--| filter referenced range on its 7th column (i.e. column "G") with "yes" values
            If Application.WorksheetFunction.Subtotal(103, .Resize(, 1)) > 1 Then .Resize(.Rows.Count - 1, 6).Offset(1).SpecialCells(xlCellTypeVisible).Copy Destination:=Worksheets("ANAF ANG").Range("A2")
        End With
        .AutoFilterMode = False
    End With
End Sub

不要嘗試從頭開始編寫VBA腳本,請使用Excel宏錄制。 如果您知道如何以交互方式獲得結果,則會為您創建必要的代碼。 如果您仍然對代碼不滿意,可以對其進行調整,那么-比起閱讀參考手冊好幾個小時要容易得多,這僅僅是為了讓您入門。

暫無
暫無

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

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