Ячейка Excel, из которой вызывается функция [дубликат]

На этот вопрос уже есть ответ здесь:

Как можно Я получаю ячейку, из которой вызывается моя функция VBA?

Другими словами, каков эквивалент VBA для INDIRECT (ROW (), COLUMN ())?

Я не ищу ActiveCell .

Я хочу иметь простая функция ThisRow_Col (rColumn As String) возвращает столбец X строки, из которой она вызывается. Скажем, в B2 я вызываю = ThisRow_Col ("A"), он должен вернуть значение A2. Это должно работать независимо от того, какая ячейка активна.

EDIT : Спасибо, Чарльз за ответ: Application.Caller . Следующий код получает столбец X текущей строки, независимо от того, где находится выделение:

Function ThisRow_Col(rColumn As Range)
    ' Return INDIRECT(rcolumn & ROW())

    ThisRow_Col = Application.Caller.Worksheet.Cells(Application.Caller.Row, rColumn.Column).Value

End Function

Обратите внимание, что передача столбца в виде диапазона ( ThisRow_Col (A1) ) лучше, чем передача его в виде строки. , потому что Excel может автоматически обновлять формулы при перемещении или вставке столбцов. Конечно, строка 1 из A1 - это просто соглашение.

48
задан casperOne 14 February 2013 в 02:02
поделиться