#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()
Me deram um#NAME?
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?