Application.WorksheetFunction.Match-Methode

Ich habe viele Themen zum Problem "Match-Eigenschaft der Arbeitsblattfunktionsklasse kann nicht abrufen" gesehen. Aber ich kann meinen Code nicht reparieren.

Warum funktioniert dieser Code nicht?

rowNum = Application.WorksheetFunction.Match(aNumber, Sheet5.Range("B16:B615"), 0)

Aber ein paar Zeilen höher funktioniert dieser Code:

rowNum2 = Application.WorksheetFunction.Match(originCode, Sheet7.Range("B10:B17"), 0)

Der einzige Unterschied zwischen meinen beiden Zeilen besteht darin, dass ich in rowNum2 einen String zum Nachschlagen und in rowNum eine Ganzzahl verwendet habe. Ist es möglich, dass der Suchwert ein String sein muss?

@ Update auf meinem Problem

Select Case service
Case "Low Cost"
MsgBox Sheet5.Cells(16, "B") 'Gets value 0.5
Set Rng = Sheet5.Range("B16:B615")

   If Not IsError(Application.Match("0.5", Rng, 0)) Then 'But jumps to Else
    rowNum = Application.Match(Weight, Rng, 0) 'Weight = 0.5
    MsgBox rowNum
Else
    MsgBox "error"
End If



Case "Standard"

Case "Express"

Case Else

End Select

@UPDATE 2

!!! Achten Sie darauf, dass "0.5" ein String und nicht 0.5 ist. Also ist 0.5 nicht "0.5" (das war mein Fehler im Code)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage