我正在制作我的第一个 VBA 程序并尝试运行以下函数。该函数检查第一行的特定命名范围,该范围的值不大于其前导值,但小于 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
我知道该函数做了它应该做的,因为我已经手动检查了值表,从 MsgBox 中删除了注释 ',并使用调试工具在每个函数步骤中步入和退出。桌子。但是,当我在 Excel 中引用该函数时,=findPurchase()
我得到了一个#NAME?
错误。当我开始输入其名称时,该功能甚至会出现在功能自动完成框中。当我编写其他函数时,无论有无参数,我都可以很好地引用它们,例如:
Function addtwo()
addtwo = 1 + 2
End Function
我的功能做错了什么导致它不起作用?