Это очень простая задача, которую можно легко выполнить, используя формулу рабочего листа:
=CONCATENATE(A1," ",B1)
![enter image description here](https://i.stack.imgur.com/HT45U.png)
Однако, если вы настаиваете наиспользуя функцию UDF, это должно сделать
Public Function MyFunction() As String
With Application.Caller
MyFunction = .Parent.Cells(.Row, Range("FIRST_NAME").Column) & _
" " & .Parent.Cells(.Row, Range("LAST_NAME").Column)
End With
End Function
. Выше даже не нужно передавать аргумент.Он использует метод Application.Caller.Row
, чтобы получить строку, из которой расположена функция.
Вы просто используете функцию =MyFunction()
, и VBA автоматически определит строку, в которой находится функция.
![enter image description here](https://i.stack.imgur.com/0Pxzh.png)