我正在製作我的第一個VBA程序並嘗試運行以下功能。該功能檢查的第一行特定的命名範圍內不具有一個值大於它的主要價值,但小於1#NAME? Excel for Excel中的錯誤功能
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中刪除了註釋',並使用調試工具在它通過表格時逐步進入和退出每個功能步驟。但是,當我使用=findPurchase()
在Excel中引用函數時,我得到一個#NAME?
錯誤。當我開始鍵入它的名字時,該函數甚至出現在函數自動完成框中。當我寫等功能,既沒有參數,我可以引用他們就好了,例如:
Function addtwo()
addtwo = 1 + 2
End Function
我在做什麼毛病我的功能,使其無法正常工作?
'Dim Found As Boolean'是否僅僅是因爲這條線不正確dim'd? –
啊,我的壞。我解決了這個問題,但仍然遇到同樣的錯誤。這實際上不會產生問題,但只是創建一個我不使用的額外變量。 – Teofrostus
你在哪裏宣佈'FoundBetter'?你有沒有嘗試單步執行代碼?你嘗試過從VBA運行功能嗎?它會給出任何錯誤嗎? –