[英]“That name is not valid” for my VBA function in Excel/Mac
一個簡單的VBA功能。 當我嘗試在工作表中使用它時,無論做什么,我得到的都是“該名稱無效”。 我沒主意了。
Sub FindABV(temperature)
With Worksheets("Sheet1")
.Range("C28").GoalSeek _
Goal:=temperature, _
ChangingCell:=.Range("B28")
End With
FindABV = .Range("B28").Value
End Sub
我嘗試創建一個新模塊來放入它。沒有變化。 並且沒有來自代碼編輯器的錯誤指示。
Sub過程執行一個任務,然后將控制權返回給調用代碼,但是它沒有將值返回給調用代碼。
在這里查看更多。
也就是說,您不能將過程設置為等於以下內容:
FindABV = .Range("B28").Value
因為該名稱無效 (您不能說一個過程等於某個值,所以沒有意義)。 您可能想使用一個函數來返回由目標搜索者計算出的該單元格的值,具體取決於您通過該函數傳遞的輸入temperature
:
Function FindABV(temperature)
With Worksheets("Sheet1")
.Range("C28").GoalSeek _
Goal:=temperature, _
ChangingCell:=.Range("B28")
End With
FindABV = .Range("B28").Value '<-- return the value
End Function
但是,請注意:如果=FindABV(temperature)
位於Sheet1.Range("B28")
,則將具有循環引用,因為函數將嘗試具有其自身的值。
您的代碼不會提供您想要的結果。 如果您要讓Function
處理與B28
和C28
存儲的值不同的值,則必須這樣編寫:
Public Function FindABV(goalCell As Range, changeCell As Range, temperature As Double)
goalCell.GoalSeek Goal:=temperature, ChangingCell:=changeCell
FindABV = changeCell
End Function
但是這並不能在任何情況下不要緊,因為GoalSeek
實際上改變了價值ChangingCell
其中Excel
,如果它是從內部調用不會做Function
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.