[英]“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.