Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Find-Methode mit xlWhole

Forumthread: Find-Methode mit xlWhole

Find-Methode mit xlWhole
09.10.2015 13:07:14
Christian
Hallo werte Gemeinde,
folgendes Problem tut sich für mich bei der Benutzung der Find-Methode auf.
Es sollen zunächst die zu findenden Begriffe in ein Array eingelesen werden.
Danach erfolgt nacheinander eine Abfrage der Spaltennummer der einzelnen Begriffe aus dem Array.
In der Zeile 3 befinden sich die abzufragenden Begriffe. Gesucht werden soll in der Zeile 2.
  • 
    Sub FindeSpalte()
    Dim Spalte As Integer
    Dim Formel() As Variant
    Dim x As Long
    Dim y As Long
    ReDim Formel(8)
    For x = 1 To 8
    Formel(x) = Worksheets("Tabelle4").Cells(4, x)
    Next x
    For y = 1 To 8
    Spalte = Worksheets("Tabelle4").Range("A2:V2").Find(what:=Formel(y)).Column
    MsgBox ("Der Meilenstein " & Formel(y) & " ist in der Spalte " & Spalte & " zu finden.")
    Next y
    End Sub
    

  • Wenn ich hinter den Find-Befehl noch "lookin:=xlwhole" setze, erscheint eine Fehlermeldung(Laufzeitfehler 9. Index außerhalb des gültigen Bereichs)
    Vielen Dank für die Hilfe
    Christian

    Anzeige

    2
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Find-Methode mit xlWhole
    09.10.2015 13:16:21
    fcs
    Hallo Christian,
    der Fehler tritt auf, wenn der SUchbegriff nicht gefunden wird.
    Versuche es mit nachfolgender Variante.
    Gruß
    Franz
    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
    

    Anzeige
    AW: Find-Methode mit xlWhole
    09.10.2015 14:50:27
    Christian
    Hallo Franz,
    das Problem lag wohl nicht wirklich am Code sondern vielmehr daran, dass die Formatierung (Zeilenumbruch und so komische vorangestellte Hochkomma) der Begriffe unterschiedlich war zu denen in der Suchzeile.
    Aber Dein Hinweis mit dem "nicht finden" hat mich auf die Spur gebracht.
    DANKE!!!!!
    Viele Grüße
    Christian
    Anzeige
    ;
    Anzeige

    Infobox / Tutorial

    Find-Methode mit xlWhole in Excel VBA


    Schritt-für-Schritt-Anleitung

    1. Vorbereitung: Öffne dein Excel-Dokument und gehe zum Visual Basic for Applications (VBA) Editor (Alt + F11).

    2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (dein Dokument)" und wähle "Einfügen" > "Modul".

    3. 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
    4. Code ausführen: Drücke F5 oder gehe auf "Run" > "Run Sub/UserForm", um den Code auszuführen.

    5. 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.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige