Find Funktion in VBA effektiv nutzen
Schritt-für-Schritt-Anleitung
-
Öffne die Excel-Datei mit den beiden Tabellenblättern, die Du bearbeiten möchtest.
-
Öffne den VBA-Editor (Alt + F11) und füge ein neues Modul hinzu.
-
Füge den folgenden VBA-Code ein, um die Find Funktion zu nutzen:
Sub Kopieren()
Dim m As Integer
Dim wsBasis As Worksheet
Dim wsAktuell As Worksheet
Dim wsListe As Worksheet
Dim rngC As Range, rngF As Range
Set wsAktuell = ThisWorkbook.Worksheets("Tabelle1")
Set wsBasis = ThisWorkbook.Worksheets("Tabelle2")
Set wsListe = ThisWorkbook.Worksheets("Tabelle3")
Application.ScreenUpdating = False
With wsAktuell
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
Set rngF = wsBasis.Columns(1).Find(rngC, lookat:=xlWhole)
If Not rngF Is Nothing Then
For m = 1 To 3
If rngF.Offset(, m) <> "" Then rngC.Offset(, m) = rngF.Offset(, m)
Next m
Else
wsListe.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = rngC
End If
Next
End With
Application.ScreenUpdating = True
End Sub
-
Schließe den VBA-Editor und führe das Makro aus (F5). Die Werte aus Tabelle2, die in Tabelle1 gefunden werden, werden kopiert und nicht gefundene Werte in Tabelle3 aufgelistet.
Häufige Fehler und Lösungen
Alternative Methoden
Eine einfache Methode, die Find Funktion in VBA zu verwenden, ist die Nutzung der VBA .Find Methode anstelle von For Each. Hier ein Beispiel:
Set rngF = wsBasis.Columns(1).Find(What:=rngC.Value, LookIn:=xlValues, LookAt:=xlWhole)
Diese Methode ist besonders nützlich, wenn Du gezielt nach bestimmten Werten suchst.
Praktische Beispiele
Hier ist ein einfaches Beispiel, um die Find Funktion in einer Excel-Tabelle zu nutzen:
- Erstelle eine Tabelle mit numerischen Werten in
Tabelle2.
- Füge die oben genannte VBA-Prozedur ein.
- Führe das Makro aus und überprüfe die Ergebnisse in
Tabelle1 und Tabelle3.
Tipps für Profis
- Nutze die
Find Funktion effizient, indem Du LookIn und LookAt anpasst, um die Suche zu optimieren.
- Teste Deine Makros in einer Kopie Deiner Datei, um Datenverlust zu vermeiden.
- Verwende
Application.ScreenUpdating = False, um die Ausführungsgeschwindigkeit zu erhöhen und Flackern zu vermeiden.
FAQ: Häufige Fragen
1. Wie funktioniert die Find Funktion in VBA?
Die Find Funktion in VBA sucht nach einem bestimmten Wert in einem angegebenen Bereich und gibt den Zellbereich zurück, wenn der Wert gefunden wird.
2. Was ist der Unterschied zwischen Find und FindNext?
Find sucht nach dem ersten Vorkommen eines Wertes, während FindNext verwendet wird, um das nächste Vorkommen desselben Wertes zu finden.
3. Kann ich die Find Funktion auch in anderen Excel-Versionen verwenden?
Ja, die Find Funktion ist in allen modernen Excel-Versionen verfügbar, solange Du VBA verwenden kannst.