Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Match-Eigenschaft der Worksheetfunktion-Objekt kann nicht zugeordnet werden

Forumthread: Match-Eigenschaft der Worksheetfunktion-Objekt kann nicht zugeordnet werden

Match-Eigenschaft der Worksheetfunktion-Objekt kann nicht zugeordnet werden
07.04.2020 21:31:16
sabinemeier
Guten Abend!
Könnte mir jemand erklären warum die Match-Eigenschaft der Worksheetfunktion-Objekt nicht zugeordnet werden kann? Was habe ich falsch gemacht?
Nach der Ausführung des ersten Subs und die darauffolgende Ausführung des zweiten Subs, bekomme _ ich diesen Fehler angezeigt.

Private Sub CommandButton4_Click()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet")
Dim Last_Row As Long
Last_Row = Application.WorksheetFunction.CountA(sh.Range("A:A"))
Dim w As Long
For w = 2 To Last_Row
If sh.Cells(w, 2).Value = Me.TextBox1.Value Then
'set value to be searched
Me.TextBox4.Value = sh.Cells(w, 1).Value
Me.TextBox8.Value = w
Exit Sub
End If
Next w
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Match-Eigenschaft der Worksheetfunktion-Objekt kann nicht zugeordnet werden
07.04.2020 21:32:36
sabinemeier
Oh, der zweite Sub wurde nicht angezeigt:
Private Sub CommandButton2_Click()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet")
Dim Selected_Row As Long
'supposed to find the value in A column in Sheet
Selected_Row = Application.WorksheetFunction.Match(Me.TextBox4.Value, sh.Range("A:A"), 0)
End Sub

Anzeige
AW: Match-Eigenschaft der Worksheetfunktion-Objekt kann nicht zugeordnet werden
07.04.2020 22:34:04
volti
Hallo Sabine,
wenn ein Suchbegriff beim Suchen mit der Match-Funktion nicht gefunden wird, wird ein Fehler erzeugt.
Entweder vorher eine Abfrage mit WorksheetFunction CountIF installieren oder so machen, wie ich es immer mache...
Private Sub CommandButton2_Click()
 Dim sh As Worksheet
 Dim Selected_Row As Long
 Set sh = ThisWorkbook.Sheets("Sheet")
'supposed to find the value in A column in Sheet
 On Error Resume Next
 Selected_Row = 0
 Selected_Row = Application.WorksheetFunction.Match(Me.TextBox4.Value, sh.Range("A:A"), 0)
 If Selected_Row > 0 Then
 'Dein Code
 End If
End Sub

viele Grüße
Karl-Heinz
Anzeige
AW: Match-Eigenschaft der Worksheetfunktion-Objekt kann nicht zugeordnet werden
08.04.2020 08:06:13
onur
Kleiner Hinweis:
Durch
Dim Selected_Row As Long

hat Selected_Row sowieso schon den Wert 0 und
Selected_Row = 0

ist überflüssig.
AW: Match-Eigenschaft der Worksheetfunktion-Objekt kann nicht zugeordnet werden
08.04.2020 10:28:16
volti
Ja onur,
da hast Du durchaus recht im vorliegenden Fall.
Hatte ich nicht nachgedacht.
Zur allgemeinen Lösung der Fehlerbehandlung des Match-Befehls in dieser Form gehört eine Vordefinition (hier 0) aber durchaus dazu, da dieser Wert beim Fail des Matchbefehls nicht verändert wird und daher eindeutig abgefragt werden kann.
Viele Grüße
Karl-Heinz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fehlerbehebung bei der Match-Eigenschaft der Worksheetfunktion in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Match-Eigenschaft der Worksheetfunktion korrekt zu verwenden, kannst du folgende Schritte befolgen:

  1. Erstelle ein neues VBA-Projekt:

    • Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden Code ein:

    Private Sub CommandButton2_Click()
       Dim sh As Worksheet
       Set sh = ThisWorkbook.Sheets("Sheet")
       Dim Selected_Row As Long
    
       On Error Resume Next
       Selected_Row = Application.WorksheetFunction.Match(Me.TextBox4.Value, sh.Range("A:A"), 0)
    
       If Selected_Row > 0 Then
           ' Dein Code
       Else
           MsgBox "Wert nicht gefunden."
       End If
    End Sub
    • Dieser Code sucht nach dem Wert in TextBox4 in der Spalte A und gibt die Zeilennummer zurück.
  4. Fehlermeldungen vermeiden:

    • Verwende die On Error Resume Next-Anweisung, um Fehler abzufangen, wenn der gesuchte Wert nicht gefunden wird.

Häufige Fehler und Lösungen

  • Fehler: "Die Match-Eigenschaft des Worksheetfunktion-Objektes kann nicht zugeordnet werden"

    • Lösung: Stelle sicher, dass der gesuchte Wert tatsächlich in der angegebenen Range vorhanden ist. Verwende die CountIF-Funktion, um vorher zu prüfen, ob der Wert existiert.
  • Fehler bei Verwendung der VLOOKUP-Funktion

    • Wenn du die VLOOKUP-Eigenschaft verwenden möchtest, stelle sicher, dass die Daten in der ersten Spalte der Suchrange vorhanden sind. Die Fehlermeldung "Die VLOOKUP-Eigenschaft kann nicht zugeordnet werden" tritt häufig auf, wenn der Wert nicht gefunden wird.

Alternative Methoden

  • Verwendung von INDEX und MATCH: Anstatt nur die Match-Funktion zu verwenden, kannst du die Kombination von INDEX und MATCH nutzen:
    Dim Result As Variant
    Result = Application.WorksheetFunction.Index(sh.Range("B:B"), Application.WorksheetFunction.Match(Me.TextBox4.Value, sh.Range("A:A"), 0))

    Dies gibt den Wert aus der Spalte B zurück, der dem gesuchten Wert in Spalte A entspricht.


Praktische Beispiele

  • Beispiel 1: Suche nach einem Wert in der Liste: Angenommen, du hast eine Liste von Namen in Spalte A und möchtest die Position eines bestimmten Namens finden. Der folgende Code sucht nach dem Wert in TextBox4:

    Selected_Row = Application.WorksheetFunction.Match(Me.TextBox4.Value, sh.Range("A:A"), 0)
  • Beispiel 2: Fehlerbehandlung: Um sicherzustellen, dass dein Code nicht abstürzt, wenn der Wert nicht gefunden wird, kannst du eine Fehlerbehandlung einfügen:

    On Error Resume Next
    Selected_Row = Application.WorksheetFunction.Match(Me.TextBox4.Value, sh.Range("A:A"), 0)
    If Err.Number <> 0 Then
      MsgBox "Wert nicht gefunden."
      Err.Clear
    End If

Tipps für Profis

  • Effiziente Datenprüfung: Verwende WorksheetFunction.CountIF vor der MATCH-Funktion, um sicherzustellen, dass der Wert existiert, bevor du die Suche startest. Dies kann die Leistung bei großen Datensätzen verbessern.

  • Variablen sinnvoll benennen: Achte darauf, dass du deine Variablen eindeutig benennst, um die Lesbarkeit deines Codes zu erhöhen.


FAQ: Häufige Fragen

1. Wie funktioniert die MATCH-Funktion in Excel?
Die MATCH-Funktion sucht nach einem bestimmten Wert in einer Range und gibt die relative Position des Wertes zurück. Sie wird häufig in Kombination mit anderen Funktionen wie INDEX verwendet.

2. Was ist der Unterschied zwischen MATCH und VLOOKUP?
MATCH gibt die Position eines Wertes zurück, während VLOOKUP den Wert aus einer anderen Spalte basierend auf einem Suchwert zurückgibt. Beide Funktionen sind nützlich, aber ihre Anwendungen sind unterschiedlich.

3. Wie kann ich Fehler bei der MATCH-Funktion vermeiden?
Verwende eine Fehlerbehandlung, um zu verhindern, dass dein Code abstürzt, wenn der Wert nicht gefunden wird. Verwende On Error Resume Next und prüfe den Fehlerstatus.

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