我有VBA功能:
public function MyFunction(someParameters) as Double
... do something ...
return aValue
end function
我从一些单元格中调用了我的函数:
A1: =MyFunction(...)
A2: =MyFunction(...)
A100: =MyFunction(..)
我想返回一个值(并且它可以工作)并且还要向单元格添加注释...
如果我使用ActiveCell
,然后我使用AddComment
,则会将评论添加到我离开光标的最后一个单元格,而不是计算出的'活动单元格。
怎么办?
感谢。
答案 0 :(得分:4)
使用ActiveCell
无法做到这一点。您的函数重新计算,每次调用ActiveCell时都会有所不同(取决于选择)。通过UDF添加注释的逻辑似乎有点缺陷,但您可以尝试这个
Public Function MyFunction() As Double
MyFunction = 3.141519
Dim cell As Range
Set cell = Range(Application.Caller.Address)
cell.AddComment (cell.Address)
End Function
答案 1 :(得分:2)
您需要使用Application.Caller
,而不是ActiveCell
。
e.g。
Function Test() As String
Test = Application.Caller.Address
End Function
参考:http://msdn.microsoft.com/en-us/library/office/ff193687%28v=office.15%29.aspx