VBA Sverweis mit variablem Dateinamen
Schritt-für-Schritt-Anleitung
Um einen VBA Sverweis mit variablem Dateinamen zu erstellen, folge diesen Schritten:
- Öffne den VBA-Editor: Drücke
ALT + F11
, um den Editor zu öffnen.
- Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDateiName)" > Einfügen > Modul.
- Kopiere den folgenden Code in das Modul:
Sub VLookupWithVariableFilename()
Dim Blatt As String
Dim Pfad As String
Dim Dateiname As String
Dim Z As Integer
Blatt = "KndNr"
For Z = 2 To 700
Pfad = Cells(Z, 9)
Dateiname = Cells(Z, 10)
Cells(Z, 12).FormulaR1C1 = _
"=VLOOKUP(RC[-11],'" & Pfad & "\[" & Dateiname & "]" & Blatt & "'!RC1:RC58,58,FALSE)"
Next Z
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Führe das Makro aus: Drücke
ALT + F8
, wähle VLookupWithVariableFilename
und klicke auf "Ausführen".
Häufige Fehler und Lösungen
-
Fehler: "Referenz kann nicht gefunden werden"
Lösung: Überprüfe, ob der angegebene Pfad und Dateiname korrekt sind. Achte darauf, dass die Dateien existieren.
-
Fehler: "Zelle enthält eine Formel, die nicht ausgewertet werden kann"
Lösung: Stelle sicher, dass die Zellen in Spalte A die richtigen Werte enthalten und die Eingabedateien den erwarteten Aufbau haben.
Alternative Methoden
Wenn Du keinen VBA-Code verwenden möchtest, kannst Du folgende alternative Methode nutzen:
- Schreibe in Zelle L2 folgende Formel:
="=SVERWEIS(A2;'"&I2&"\["&J2&"]KndNr'!$A:$BD;58;FALSCH)"
- Kopiere die Formel von L2 nach unten bis L700.
- Wähle die Zellen L2:L700 aus und drücke
F2
, gefolgt von STRG + ENTER
, um die Formeln zu aktivieren.
Praktische Beispiele
Angenommen, Du hast folgende Daten in Deiner Excel-Datei:
- Spalte A: Kundennummer
- Spalte I: C:\Daten\Kunden
- Spalte J: Kundenliste.xlsx
Wenn Du das oben genannte VBA-Skript ausführst, wird es automatisch die Werte aus der Datei "Kundenliste.xlsx" auslesen und in die Spalte L eintragen.
Tipps für Profis
- Verwende Fehlerbehandlung: Füge in deinen VBA-Code eine Fehlerbehandlung hinzu, um unerwartete Probleme elegant zu lösen.
- Dynamische Bereiche: Nutze dynamische Bereichsnamen, um sicherzustellen, dass das Skript auch mit unterschiedlichen Datenmengen funktioniert.
- Makros speichern: Stelle sicher, dass Du die Datei als Makro-fähige Datei (z.B. .xlsm) speicherst.
FAQ: Häufige Fragen
1. Kann ich den VBA-Code anpassen, um mehr Spalten auszulesen?
Ja, Du kannst die Cells(Z, 12)
-Zeile anpassen, um Werte in andere Spalten einzufügen.
2. Funktioniert dieser VBA Sverweis auch in Excel 365?
Ja, der Code sollte in Excel 365 sowie in früheren Versionen funktionieren, solange die grundlegenden VBA-Funktionen unterstützt werden.
3. Was mache ich, wenn die Dateinamen variieren?
Du kannst eine zusätzliche Spalte einfügen, um den Dateinamen dynamisch zu generieren, oder eine Liste der Dateinamen verwenden.