Find-Methode mit xlWhole in Excel VBA
Schritt-für-Schritt-Anleitung
-
Vorbereitung: Öffne dein Excel-Dokument und gehe zum Visual Basic for Applications (VBA) Editor (Alt + F11).
-
Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (dein Dokument)" und wähle "Einfügen" > "Modul".
-
Code einfügen: Kopiere den folgenden Code in das Modul:
Sub FindeSpalte()
Dim Spalte As Integer
Dim Formel() As Variant
Dim x As Long
Dim y As Long
Dim Zelle As Range
ReDim Formel(1 To 8)
For x = 1 To 8
Formel(x) = Worksheets("Tabelle4").Cells(4, x)
Next x
For y = 1 To 8
Set Zelle = Worksheets("Tabelle4").Range("A2:V2").Find(what:=Formel(y), _
LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then
MsgBox ("Der Meilenstein " & Formel(y) & " ist nicht zu finden.")
Else
Spalte = Zelle.Column
MsgBox ("Der Meilenstein " & Formel(y) & " ist in der Spalte " & Spalte & " zu finden.")
End If
Next y
End Sub
-
Code ausführen: Drücke F5 oder gehe auf "Run" > "Run Sub/UserForm", um den Code auszuführen.
-
Ergebnisse prüfen: Achte auf die angezeigten Meldungen, um die Spaltennummern der gesuchten Begriffe zu sehen.
Häufige Fehler und Lösungen
- Laufzeitfehler 9: Dieser Fehler tritt auf, wenn der Suchbegriff nicht gefunden wird. Stelle sicher, dass die Begriffe in Zeile 4 und Zeile 2 identisch formatiert sind.
- Formatierungsprobleme: Achte darauf, dass keine unerwünschten Zeichen oder Leerzeichen in den Suchbegriffen vorhanden sind. Diese können dazu führen, dass der Suchbegriff nicht gefunden wird.
Alternative Methoden
Wenn die Find
-Methode nicht die gewünschten Ergebnisse liefert, kannst du auch die VLOOKUP
-Funktion in Excel verwenden. Diese Funktion sucht nach einem Wert in der ersten Spalte einer Tabelle und gibt einen Wert in der gleichen Zeile aus einer angegebenen Spalte zurück.
Beispiel:
=VLOOKUP(A1, A2:B10, 2, FALSE)
Dies sucht den Wert in A1 in der ersten Spalte des Bereichs A2:B10 und gibt den entsprechenden Wert aus der zweiten Spalte zurück.
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie du die Find
-Methode mit lookat:=xlwhole
in einem VBA-Skript verwenden kannst:
Sub SucheNachWert()
Dim Zelle As Range
Set Zelle = Worksheets("Tabelle1").Range("A1:A10").Find(what:="Suchbegriff", LookIn:=xlValues, lookat:=xlWhole)
If Not Zelle Is Nothing Then
MsgBox "Wert gefunden in: " & Zelle.Address
Else
MsgBox "Wert nicht gefunden."
End If
End Sub
In diesem Beispiel wird nach dem "Suchbegriff" in den Zellen A1 bis A10 gesucht.
Tipps für Profis
- Nutze
Option Explicit
am Anfang deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
- Verwende
LookIn:=xlValues
, um gezielt nach Werten zu suchen, anstatt nach Formeln.
-
Optimiere die Leistung deines Codes, indem du die Bildschirmaktualisierung und Berechnung während der Ausführung des Codes deaktivierst:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
' Dein Code hier
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
FAQ: Häufige Fragen
1. Was ist der Unterschied zwischen lookat:=xlwhole
und lookat:=xlpart
?
lookat:=xlwhole
sucht nach einer exakten Übereinstimmung des Suchbegriffs, während lookat:=xlpart
auch Teilsuchbegriffe findet.
2. Welche Excel-Version benötige ich für die Verwendung von VBA?
VBA ist in den meisten Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Excel für Microsoft 365.