Найти в Дзене
Макрос решает

Простая инструкция: как правильно задавать адреса ячеек в макросах Excel - 16

Теперь я хочу показать вам, как использовать свойства диапазона Address. Очевидно по названию, что данное свойство возвращает адрес ячейки. Итак, нам нужно традиционно создать нашу процедуру: переходим в Visual Basic, создаём новую процедуру и назовём её MyAddressMsg. Запишем следующую команду: Range("A1").Address. Открываем скобки. Свойство Address, в свою очередь, также имеет параметры и настройки. Эти параметры будут влиять на то, в каком виде будет отображаться адрес. В скобках нам необходимо определить, в каком виде мы хотим видеть адрес — в виде абсолютной ссылки или относительной. Первый аргумент отвечает за строку, а второй — за колонку. Данные аргументы могут принимать два значения: Истина (True) или Ложь (False). Если мы хотим, чтобы адрес ячейки был полностью абсолютным, то нам необходимо прописать в обоих параметрах значение Истина или True. Запустим программу, и программа выдала адрес ячейки с долларами перед значениями строки и столбца. Это означает, что наша ячейка абсо

Теперь я хочу показать вам, как использовать свойства диапазона Address. Очевидно по названию, что данное свойство возвращает адрес ячейки. Итак, нам нужно традиционно создать нашу процедуру: переходим в Visual Basic, создаём новую процедуру и назовём её MyAddressMsg. Запишем следующую команду: Range("A1").Address.

Открываем скобки. Свойство Address, в свою очередь, также имеет параметры и настройки. Эти параметры будут влиять на то, в каком виде будет отображаться адрес.

В скобках нам необходимо определить, в каком виде мы хотим видеть адрес — в виде абсолютной ссылки или относительной. Первый аргумент отвечает за строку, а второй — за колонку. Данные аргументы могут принимать два значения: Истина (True) или Ложь (False). Если мы хотим, чтобы адрес ячейки был полностью абсолютным, то нам необходимо прописать в обоих параметрах значение Истина или True.

  • Sub myAddress()
    MsgBox Range("a1").Address(True, True)
    End Sub

Запустим программу, и программа выдала адрес ячейки с долларами перед значениями строки и столбца. Это означает, что наша ячейка абсолютная.

-2

Также стоит отметить, что, аналогично написанию значения True или False, вы также можете применять цифровой эквивалент данных команд — 1 или 0. Соответственно, для программы это в принципе то же самое. Давайте перепишем команду и посмотрим, как она работает. Вместо аргумента напишем единичку и ещё раз проверим.

  • Sub myAddress()
    MsgBox Range("a1").Address(1, 1)
    End Sub
-3

Итак, наша команда работает так же, как если бы мы написали данный аргумент словами.

Теперь давайте скажем, что хотим отобразить адрес диапазона A1:C6. Тогда и адрес внутри кавычек необходимо будет поменять — он будет выглядеть следующим образом: Range("A1:C6").Address. Проверим.

  • Sub myAddress()
    MsgBox Range("A1:C6").Address(1, 1)
    End Sub

Итак, всё у нас работает. Перед нами диалоговое окно, которое выдало адрес диапазона, и этот адрес диапазона у нас выглядит в виде абсолютной ячейки $A$1:$C$6.

-4

Теперь, скажем, что я хочу, чтобы адрес ячейки имел смешанный тип, чтобы перед колонкой не было никакого знака доллара. Тогда наша команда будет выглядеть следующим образом: нам необходимо будет второй аргумент (единичку) заменить на нолик.

  • Sub myAddress()
    MsgBox Range("A1:C6").Address(1, 0)
    End Sub
-5

Жмём, и программа оставила знак доллара только перед номерами строк A$1:C$6 — это то, что, в принципе, я и хотел от программы.

Ну, а если я хочу, чтобы адрес был полностью относительный, тогда и первый аргумент тоже делаем нулевым. Запускаем, и у нас адрес диапазона полностью относительный — A1:C6

  • Sub myAddress()
    MsgBox Range("A1:C6").Address(0, 0)
    End Sub
-6

Таким образом, вы можете выбирать вид адреса ячеек в зависимости от ваших нужд каждый раз, когда вы используете свойство Address.

Подписывайтесь на канал, чтобы лучше узнать макросы и освоить VBA. Пишите в комментариях, как вы используете или хотите использовать макросы.