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

Секреты Range в Excel VBA: освоение свойств Text, Row, Column и Count - 14

Мы только что поговорили с вами о свойстве диапазона значение. Теперь давайте немного поговорим о таком свойстве, как текст. Итак, мы видим, что в ячейке А1 — «50» с двумя знаками после точки и символом рубля. Хотя фактическое значение этой ячейки равняется 50. Если мы хотим вернуть именно те символы, которые видим в ячейке, нужно воспользоваться свойством текст. Давайте немного подправим наш код. Вместо: Напишем: Теперь окно сообщений выдало: «50,00 ₽» — ровно так, как это изображено в ячейке. По умолчанию, если оставить код после фразы Range пустым: Программа будет возвращать значение ячейки, то есть по умолчанию оно равняется value. Однако, в большинстве случаев для макросов требуется именно это. Если же нужен полный текст, который вы видите в ячейке, нужно внести свойство .text. Давайте поговорим о таком интересном свойстве, которое называется Row и Column. Это свойство возвращает номер строки ячейки и номер колонки. Выберем случайную ячейку. Пускай это будет, скажем, E6. Имен
Оглавление

Свойство Range Text. Свойства диапазона.

Мы только что поговорили с вами о свойстве диапазона значение. Теперь давайте немного поговорим о таком свойстве, как текст. Итак, мы видим, что в ячейке А1 — «50» с двумя знаками после точки и символом рубля. Хотя фактическое значение этой ячейки равняется 50.

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

Вместо:

  • Sub myValue()
    MsgBox Range("A1").Value
    End Sub

Напишем:

  • Sub myValue()
    MsgBox Range("A1").Text
    End Sub

Теперь окно сообщений выдало: «50,00 ₽» — ровно так, как это изображено в ячейке.

По умолчанию, если оставить код после фразы Range пустым:

  • Sub myValue()
    MsgBox Range("A1")
    End Sub

Программа будет возвращать значение ячейки, то есть по умолчанию оно равняется value.

Однако, в большинстве случаев для макросов требуется именно это. Если же нужен полный текст, который вы видите в ячейке, нужно внести свойство .text.

Свойство Range Row and Range Column. Свойства диапазона.

Давайте поговорим о таком интересном свойстве, которое называется Row и Column. Это свойство возвращает номер строки ячейки и номер колонки. Выберем случайную ячейку. Пускай это будет, скажем, E6. Именно её и будем препарировать в дальнейшем для наших экспериментов. Для начала я хочу получить номер строки.

Создаём новую процедуру. Наша команда будет выглядеть следующим образом:

  • Sub myColandRow()
    MsgBox Range("E6").Row
    End Sub

Как я говорил ранее, данное свойство возвращает порядковый номер строки ячейки E6. Информацию я хочу видеть в виде окна сообщений, поэтому перед командой добавим MsgBox, и запускаем наш макрос Run. Окно сообщений выдало значение 6, то есть строку, на которой находится ячейка E6.

Так что же насчёт номера колонки? Давайте немного подправим наш макрос и заменим .Row на .Column. Снова запускаем.

  • Sub myColandRow()
    MsgBox Range("E6").Column
    End Sub

Окно сообщений выдало значение, допустим, 5 — это номер колонки.

Всё правильно: текущий диапазон E6 имеет свойство строки, равное 6, и колонки, равное 5. Очень простая и полезная команда VBA.

Свойство Range Select. Свойства диапазона.

Следующее свойство, о котором я хочу вам рассказать, называется Select, или выбор. Это действительно круто, потому что каждый раз, когда вам нужно что-то сделать в Excel, необходимо сначала выбрать ячейку, или, другими словами, активизировать её. Например, сейчас выбрана ячейка E6. Вы можете выбрать любую другую.

Создадим процедуру, назовём её My Select. Теперь я хочу, скажем, выбрать диапазон ячеек A1:C6. Для этого вводим команду

  • Sub mySelect()
    Range("A1:C6").Select
    End Sub

Нажимаем F5 или Run Macro, и программа выбрала необходимый диапазон.

-6

Точно так же можно изменить диапазон на любой другой или даже выбрать одну единственную ячейку. Для этого нужно внутри кавычек поменять адрес ячейки, скажем, на E6. Нажимаем F5, и выбор переключается на ячейку E6.

  • Sub mySelect()
    Range("E6").Select
    End Sub

Вот так просто это всё выглядит.

-7

Свойство Range Count. Свойства диапазона.

Теперь немного поговорим о другом свойстве объекта диапазона — Count, или счёт. Данное свойство считает количество ячеек в диапазоне. Оно не похоже на функцию Excel СЧЁТ или СЧЁТЗ, так как для нашего свойства не имеет значения, есть ли в ячейке данные.

Свойство Count просто покажет, сколько ячеек в диапазоне. Давайте продемонстрируем это на примере. Для начала заполним диапазон A1:C6 значениями, скажем, «20». Переходим в Visual Basic, создаём новую процедуру и вводим команду Range("A1:C6").Count. Затем добавляем MsgBox, чтобы увидеть количество ячеек (их должно быть 18). Запускаем макрос — сообщение выводит цифру 18.

  • Sub myCount()
    MsgBox Range("A1:C6").Count
    End Sub

Теперь удалим 6 значений и снова запустим макрос — программа всё равно выводит значение 18.

Итак, свойство Count возвращает количество ячеек, независимо от того, есть ли там данные. Если вам нужно посчитать только непустые ячейки, используйте функцию рабочего листа. О том, как это сделать, мы поговорим позже.

Подпишитесь на канал и пожалуйста напишите своё мнение о том подойдёт ли такое количество информации в одной статье для изучения.