#NAME? Fehler in Excel für VBA-Funktion

Ich mache mein erstes VBA-Programm und versuche, die folgende Funktion auszuführen. Die Funktion überprüft einen bestimmten benannten Bereich für die erste Zeile, deren Wert nicht größer als der führende Wert, sondern kleiner als 1 ist.

Public Function findPurchase()

Dim CRT As Range
Set CRT = Range("CostRateTable")

Dim existsBetter As Boolean
existsBetter = True

Dim r As Integer
r = 2
Dim c As Integer
c = 4

While existsBetter

    Dim Found As Boolean
    FoundBetter = False

    While Not FoundBetter And c <= CRT.Columns.Count
        If CRT(r, c) > CRT(r, 2) And CRT(r, c) < 1 Then
            FoundBetter = True
        Else
            c = c + 1
        End If
    Wend


    existsBetter = FoundBetter
    If existsBetter Then
        r = r + 1
    End If
Wend

findPurchase = CRT(r, 3)
'MsgBox(findPurchase)
End Function

Ich weiß, dass die Funktion das tut, was sie soll, weil ich sowohl die Wertetabelle manuell überprüft, den Kommentar 'aus der MsgBox entfernt als auch die Debug-Tools verwendet habe, um die einzelnen Funktionsschritte während des Durchlaufs durchzugehen Tabelle. Wenn ich jedoch die Funktion in Excel mit referenziere=findPurchase()&nbsp;Mir wurde ein ... gegeben#NAME?&nbsp;Error. Die Funktion wird sogar im Feld für die automatische Vervollständigung der Funktion angezeigt, wenn ich mit der Eingabe des Namens beginne. Wenn ich andere Funktionen mit und ohne Parameter schreibe, kann ich sie einfach referenzieren, zum Beispiel:

Function addtwo()
    addtwo = 1 + 2
End Function

Was mache ich falsch mit meiner Funktion, die dazu führt, dass sie nicht funktioniert?