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 als wbData.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 nur Sheet4.
InformationsquelleAutor acadie | 2014-10-16
Schreibe einen Kommentar