#¿NOMBRE? error en Excel para la función VBA

Estoy haciendo mi primer programa de VBA y tratando de ejecutar la siguiente función. La función verifica un rango con nombre específico para la primera fila que no tiene un valor mayor que su valor inicial, pero menor que 1.

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

Sé que la función hace lo que se supone que debo hacer porque he revisado manualmente la tabla de valores, eliminado el comentario 'del MsgBox y he usado las herramientas de depuración para entrar y salir de cada uno de los pasos de las funciones a medida que avanzaba mesa. Sin embargo, cuando hago referencia a la función en Excel con=findPurchase() Me dieron un#NAME? error. La función incluso aparece en el cuadro de autocompletar de la función cuando comienzo a escribir su nombre. Cuando escribo otras funciones, con y sin parámetros, puedo hacer referencia a ellas muy bien, por ejemplo:

Function addtwo()
    addtwo = 1 + 2
End Function

¿Qué estoy haciendo mal con mi función que hace que no funcione?

Respuestas a la pregunta(9)

Su respuesta a la pregunta