讓我首先承認我是VBA的新手(雖然我已經設法使用本網站的最後2條年份)。但我完全跺腳在這一個。Excel VBA:高級過濾器將數據複製到另一個工作簿
我有一個工作簿與一個工作表上的搜索界面和另一個工作表上的數據庫。 這是我使用做返回的搜索界面表中的數據對數據庫的高級篩選代碼:
Private Sub Find_Click()
Sheet2.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheet4.Range("V1:AE2"), CopyToRange:=Sheet4.Range("E1:T1"), Unique:=False
End Sub
我現在想給2個工作表分成2個工作簿。因此,高級篩選將針對工作簿「數據」中包含的數據執行,並將結果返回到工作簿「SearchInterface」。 2個工作簿將始終在同一時間打開。
我試圖把各種變量:在
wbData.Sheet2.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy
我試過很多東西,但沒有任何工程
Private Sub Find_Click()
Set wbSearch = ThisWorkbook
Set wbData = Workbooks("GAL_db.xlsx")
wbData.Sheet2.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=wbSearch.Sheet4.Range("V1:AE2"), CopyToRange:=wbSearch.Sheet4.Range("E1:T1"), Unique:=False
End Sub
獲取語法錯誤。不是太知識淵博,我幾乎在黑暗中拍攝。任何幫助或方向將不勝感激。
== UPDATE ===
感謝輸入羅裏! 我改變了代碼的建議是:
Private Sub Find_Click()
Set wbData = Workbooks("GAL_db.xlsx")
wbData.Sheets("Sheet2").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheet4.Range("V1:AE2"), CopyToRange:=Sheet4.Range("E1:T1"), Unique:=False
End Sub
現在,我再次得到一個語法錯誤有:
wbData.Sheets("Sheet2").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
和Private Sub Find_Click()
以黃色突出顯示...
錯誤消息和在哪一行? – 2014-10-16 15:14:35
您不能在其他工作簿中使用工作表的代號(除非您有參考集),因此您需要使用'wbData.Sheets(「Sheet2」)'而不是'wbData.Sheet2'(調整工作表名稱有必要的)。 – Rory 2014-10-16 15:16:37
改變'表(「Sheet2的」)之後'我現在得到一個編譯錯誤:預期表達式後「CriteriaRange:=」 – acadie 2014-10-16 15:43:17