#NOME? erro no Excel para a função VBA

Eu estou fazendo meu primeiro programa VBA e tentando executar a seguinte função. A função verifica um intervalo nomeado específico para a primeira linha que não possui um valor maior que seu valor de entrelinha, mas 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

Eu sei que a função faz o que é suposto porque eu tenho ambos verificados manualmente a tabela de valores, removi o comentário 'da MsgBox e usei as ferramentas de depuração para entrar e sair de cada uma das etapas de funções que passou pelo mesa. No entanto, quando faço referência à função no Excel com=findPurchase()&nbsp;Me deram um#NAME?&nbsp;erro. A função aparece mesmo na caixa de preenchimento automático da função quando eu começo a digitar seu nome. Quando escrevo outras funções, com e sem parâmetros, posso referenciá-las bem, por exemplo:

Function addtwo()
    addtwo = 1 + 2
End Function

O que estou fazendo errado com a minha função que faz com que não funcione?