VBA Excel. Перенос кода процедуры и текста на новую строку

Автор: | 01.06.2022

Переместите часть кода выражения VBA Excel на другую строку. Объедините несколько утверждений в одну строку. Программно переносите текст на новую строку.

Содержание 1. Перенести часть выражения на новую строку 2. Объединить операторы в одну строку 3. Перенести текст программно в другую строку
Обратите внимание, что в этой статье слова «оператор» и «выражение» используются в одном и том же смысле. Они представляют собой минимальное выполнение кода VBA в одной строке.

 

1 2 3 4 5 ‘Каждая строка представляет собой ‘оператор/выражение Dim a As Long, b As Long a = 12 b = a + 25

 

Перенос части выражения на новую строку

Разбиение длинного оператора на части улучшит его читабельность, сделает код процедуры более наглядным и компактным и не позволит ему выходить за пределы видимого экрана справа.

Части кода выражения, переносимые на новые строки, разделяются символом подчеркивания (_), который должен быть помещен после пробела. Этот символ указывает компилятору Excel VBA следовать продолжению текущей строки.

Пример 1
Развернутые и упакованные процедуры являются частью кода оператора:

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Код оператора «процедура без оболочки» Sub First_1_1() Dim a As Long, b As Long a = 12 * 7 — 15/5 + 36 b = a + 25 + 36 * 15 — 5 MsgBox b End Sub ‘Процедура с оберткой’ Коды подинструкций First_1_2() Dim a As Long, _ b As Long a = 12 * 7 — 15 _ / 5 + 36 b = a + 25 + 36 _ * 15 — 5 MsgBox b End Sub

 

Вы можете скопировать код из примера 1 и посмотреть, работает ли он. В обоих случаях в информационном окне MsgBox будет отображаться один и тот же результат.

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

Объединение операторов в одной строке

Многие короткие выражения в коде Excel VBA можно объединить в одну строку. Для этого используется символ двоеточия с пробелом «:», который сообщает компилятору, что следует следующий оператор.

Пример 2
Процедуры без объединения и с объединением операторов:

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ‘Процедура без объединения ‘Подоператоров Primer_2_1() Dim a As Long, b As Long, c As Long a = 12 b = a + 25 c = a * b MsgBox c End Sub ‘Процедура с объединением ‘Подоператоров Primer_2_2() Dim a As long, b As long, c As long a = 12: b = a + 25: c = a * b: MsgBox c End Sub

 

Во втором примере, как и в первом, информационное окно MsgBox будет отображать тот же результат.

Программный перенос текста на другую строку

Следующие ключевые слова используются для программного переноса произвольного текста на новую строку в VBA Excel:

  • vbCr — возврат каретки;
  • vbLf — перевод строки;
  • vbCrLf — возврат каретки и перевод строки, аналогичный нажатию клавиши «Enter»;
  • vbNewLine — новая строка.

Выражения «возврат каретки» и «перевод строки» произошли от механических пишущих машинок (пишущих машинок).

Пример 3
Проверяем работоспособность вышеуказанных ключевых слов программным переносом текста на новые строки в ячейке и информационном окне MsgBox:

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 Sub First_3() ‘Перенести текст в диапазон ячеек («B2») = «Первая строка + vbCr» & vbCr & _ «Вторая строка + vbLf» & vbLf & _ «Третья строка + vbCrLf» & vbCrLf & _ «Четвертая строка + vbNewLine» & vbNewLine & _ «Пятая строка» ‘Перенести текст в информационном окне MsgBox «Первая строка + vbCr» & vbCr & _ «Вторая строка + vbLf» & vbLf & _ «Третья строка + vbCrLf» & vbCrLf & _ «Четвертая строка + vbNewLine» & vbNewLine & _ «Пятая строка» End Sub

 

Я получил следующий результат:

 

Результаты программного переноса текста на новую строку в ячейке и информационном окне MsgBox

 

Результат четырех новых разрывов строк

Как вы можете видеть на изображении, ключевое слово «vbCr» не работало в ячейке для переноса текста на другую строку, хотя оно работало в информационном окне MsgBox.

Я использовал ключевые слова «vbCr» и «vbLf» только для справки, но на практике их следует использовать для переноса текста на новую строку: «vbCrLf» и «vbNewLine».

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *