如何获取当前的Excel单元格

时间:2014-07-01 10:07:41

标签: excel vba

我有VBA功能:

public function MyFunction(someParameters) as Double

  ... do something ...

  return aValue

end function

我从一些单元格中调用了我的函数:

A1: =MyFunction(...) 

A2: =MyFunction(...)

A100: =MyFunction(..)

我想返回一个值(并且它可以工作)并且还要向单元格添加注释...

如果我使用ActiveCell,然后我使用AddComment,则会将评论添加到我离开光标的最后一个单元格,而不是计算出的'活动单元格。

怎么办?

感谢。

2 个答案:

答案 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