2017-01-16 30 views
0

對不起,尋求幫助,但我一直在嘗試大量的宏,沒有做的工作權。我不知道在哪裏尋找解決方案。VBA:自動過濾一個範圍並複製到現有的工作表

  • 我有一個名爲「ABC」其中I具有由用戶inputed成範圍的數據表:F(從A2開始石南&去下可能高達20.000行)。
  • 在列GI有標準(是/否)

所以我想所有的行復制(粘貼值&保持格式化)至A:F其中G =「是」,另一個名爲表「 ANAF ANG「放入指定的範圍(相同的A:F,開始A2)。

注意:數據複製的初始工作表必須在完成後清除過濾器。

如何..?

回答

0

您可以使用此註釋代碼:

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 
+0

謝謝。我宣佈自己是個白癡。 :) – MisterA

+0

不客氣。好的編碼! – user3598756

0

不要試圖從頭開始編寫VBA腳本,使用Excel宏錄製。如果您知道如何以交互方式實現您的結果,則必須爲您創建必要的代碼。如果您仍然對代碼不滿意,您可以調整它, - 比閱讀參考手冊幾個小時更容易,只是爲了讓您開始。

+0

我會試試看。謝謝。直到現在還沒有嘗試過,我希望我能管理。我會告訴自己。 – MisterA

+0

請務必將[用戶操作]最小化(https://support.office.com/zh-cn/article/Move-or-copy-rows-and-columns-3ebbcafd-8566-42d8-8023-a2ec62746cfc)。 – marabu

相關問題