Перенесите часть кода выражения Excel VBA в другую строку. Комбинация нескольких операторов в одной строке. Программный перенос текста на новую строку.
Содержание 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 Primer_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 ‘Процедура с переносом’ коды операторов Sub Primer_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 | Процедура операторов без комбинации ‘Sub Primer_2_1 () Dim a As Long, b As Long, c As Long a = 12 b = a + 25 c = a * b MsgBox c Завершить процедуру подоператоров с комбинацией’ Sub Primer_2_2 () Dim a до длины, b до длины, c до длины 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 Primer_3 () ‘Перенос текста в диапазон ячеек («B2») = «Первая строка + vbCr» & vbCr & _ «Вторая строка + vbLf» & vbLf & _ «Третья строка + vbCrLf» & vbCrLf & _ «Четвертая строка + vbNewLine «& vbNewLine & _» Пятая строка «‘Перенос текста в информационном окне MsgBox» Первая строка + vbCr «& vbCr & _» Вторая строка + vbLf «& vbLf & _» Третья строка + vbCrLf «& vbCrLf & _» Четвертая строка + vbNewLine «& vbNewLine & _» Пятая строка «End Sub |
В результате получилось следующее:
Результат четырех переносов текста на новую строку
Как вы можете видеть на изображении, ключевое слово «vbCr» не работало в ячейке для переноса текста в другую строку, хотя оно работало в информационном окне MsgBox.
Я использовал ключевые слова «vbCr» и «vbLf» только в информационных целях, но на практике их следует использовать для переноса текста на новую строку — «vbCrLf» и «vbNewLine».