Относительный адрес ячейки в макросах Excel - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый день! Чтобы присвоить ячейке значение из макроса пишу так: Cells(1,1).Value="АБВГД" или Range("A1").value="АБВГД" Есть ли способ сделать, чтобы когда пользователь вставил перед нужной нам ячейкой из макроса произвольное количество строк или столбцов, то в макросе автоматически изменялся этот адрес "А1" ?

Решение задачи: «Относительный адрес ячейки в макросах Excel»

textual
Листинг программы
Sub test()
   'В ячейку A1 запишем текст "АБВГД"
   Range("A1").Value = "АБВГД"
   'Присвоим ячейке A1 имя "МояЯчейка"
   ActiveWorkbook.Names.Add Name:="МояЯчейка", RefersToR1C1:="=Лист1!R1C1"
   'Юзер вставил строку. A1 сместится ниже, но у неё теперь есть имя, _
   по которому можно делать с ней, что угодно.
   Rows("1:1").Insert
   'В ячейку с именем "МояЯчейка" запишем текст "ДГВБА"
   [МояЯчейка] = "ДГВБА"
 End Sub

Оцени полезность:

5   голосов , оценка 4 из 5