#excel #vba
#excel #vba
Вопрос:
У меня есть функция VBA:
public function MyFunction(someParameters) as Double
... do something ...
return aValue
end function
У меня есть лист, где моя функция вызывается из некоторых ячеек:
A1: =MyFunction(...)
A2: =MyFunction(...)
A100: =MyFunction(..)
Я хотел бы вернуть значение (и это работает), а также добавить комментарий к ячейке…
Если я использую ActiveCell
, а затем использую AddComment
, это добавит комментарий к последней ячейке, в которой я оставил курсор, а не к «вычисленной активной ячейке».
Как сделать?
Спасибо.
Комментарии:
1. Вы можете ссылаться на ячейку, которая вызывает UDF — я не пробовал это для добавления комментариев. mrexcel.com/forum/excel-questions /…
Ответ №1:
Вы не можете сделать это с помощью 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
Ответ №2:
Вам нужно использовать Application.Caller
, а не ActiveCell
.
например
Function Test() As String
Test = Application.Caller.Address
End Function
Ссылка: http://msdn.microsoft.com/en-us/library/office/ff193687(v=office.15).aspx