Excel-VBA: Spezialfilter Kopie der Daten in eine andere Arbeitsmappe
Ich habe eine Arbeitsmappe mit der suchen-Schnittstelle auf einem Arbeitsblatt und einer Datenbank auf einem anderen Arbeitsblatt.
dies ist der code, den ich verwenden um einen Erweiterten Filter auf die Datenbank gibt die Werte auf der suchen-Schnittstelle Arbeitsblatt:
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
Ich versuche jetzt zu split die 2 Arbeitsblätter in 2 Arbeitsmappen. Damit Sie den Erweiterten Filter, durchgeführt auf die Daten in der Arbeitsmappe "Daten" und die zurückgegebenen Ergebnisse in der Arbeitsmappe "SearchInterface".
Die 2 Arbeitsmappen immer zur gleichen Zeit geöffnet.
Ich habe versucht, einfügen von Variablen:
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
Erste Syntax-Fehler, die auf
wbData.Sheet2.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy
Ich viele Dinge versucht, aber nichts funktioniert. Nicht allzu kompetent, ich bin ziemlich viel Aufnahmen im dunklen. Jede Hilfe oder Richtung wäre sehr dankbar.
==UPDATE===
vielen Dank für den input Rory!
Ich änderte den code wie vorgeschlagen, zu diesem:
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
Jetzt bin ich immer wieder einen syntax-Fehler mit:
wbData.Sheets("Sheet2").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
sowie Private Sub Find_Click()
ist gelb hervorgehoben...
- Fehlermeldung und auf welche Linie?
- Sie nicht verwenden können, der codename für ein Arbeitsblatt in einer anderen Arbeitsmappe (es sei denn, du hast einen Verweis gesetzt), so müssen Sie
wbData.Sheets("Sheet2")
eher alswbData.Sheet2
(anpassen des blattnamens als notwendig). - nach dem ändern der
Sheets("Sheet2")
ich bin jetzt immer einen compile error: Expected Expression nach "CriteriaRange:=" - Sie brauchen nicht
wbSearch.Sheet4
aber nurSheet4
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie sind auf der Suche nach einer Kombination von den 2 Lösungen, die Sie hatte...
wbData.Sheets("Sheet2").Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy,
. sollte ich eine Annäherung an diese Aufgabe einer anderen Art und Weise statt?Gut, durch Versuch und Irrtum ich habe es funktioniert! Yeeey! Weiß nicht warum, aber es funktioniert nur, wenn ich mich auf die Tabelle4 B. Worksheets(1). Hier ist der code, der funktioniert für meine Zweck: