簡體   English   中英

VBA中的Excel過濾和復制

[英]Excel Filtering and Copying in VBA

我正在處理一個 VBA 腳本,該腳本從 Access 中提取一系列日期,然后過濾數據並根據過濾后的數據創建圖表。 過濾后的數據將轉到單獨的工作表,圖表將從中提取其數據。 我可以使用 SQL 語句從 Access 中獲取數據,但是我在 Excel 中的自動AutoFilter出錯了。 這是我所擁有的...

Sheet3.Range("F4:F500").AutoFilter(, "Riveter 01").Copy Destination:=Sheet2.Range("A5")

它給出了應用程序定義或對象定義的錯誤,我不知道為什么。 這是正確的方法還是有更簡單的方法?

PS:這個過濾器將在 22 台不同的機器上發生,所以我計划為每台機器運行一個循環。 如果這不是最快或正確的方法,請告訴我。

你需要把它分成兩部分。 過濾然后復制/粘貼。 見下文:

With Sheet3
    .AutoFilterMode = False
    With .Range("F4:F500")
        .AutoFilter Field:=1, Criteria1:="Riveter 01"
        .SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet2.Range("A5")
    End With
End With

刪除過濾器:

On Error Resume Next
    Sheet3.ShowAllData
On Error GoTo 0

On Error Resume Next 適用於沒有過濾器可以跳過錯誤的情況。 請注意 Sheet3 和 Sheet2 對於那些尋找通用解決方案的人的使用。

我認為您必須分 2 個單獨的步驟執行此操作:

  1. 過濾數據
  2. 將過濾后的數據復制到另一個工作表

這里的答案有一個很好的例子來說明如何做到這一點:自動過濾宏,然后僅復制可見數據並粘貼到下一個可用行

暫無
暫無

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

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