Как использовать перенос текста в любом месте через vba?
В VBA есть свойство WrapText, к которому вы можете получить доступ, чтобы применить перенос текста к ячейке или диапазону ячеек. Вам нужно написать код, чтобы включить или отключить его. Это свойство доступно для чтения и записи, поэтому вы можете применить его или получить, если оно применено к ячейке.
В этом уроке мы рассмотрим различные способы применения переноса текста с помощью кода VBA.
Перенос текста в ячейке с помощью VBA
Используйте следующие шаги, чтобы применить перенос текста с помощью кода VBA.
- Определите ячейку, к которой вы хотите применить переносимый текст, используя свойство range .
- Введите точку, чтобы просмотреть список свойств и методов для этой ячейки.
- Выберите свойство «WrapText» из списка.
- Введите знак равенства «=» и введите TRUE, чтобы включить перенос слов.
Sub vba_wrap_text() Range("A1").WrapText = True End Sub
Вы также можете указать ячейку следующим образом.
Cells(1, 1).WrapText = True
Перенос текста в ряд ячеек
А если вы хотите применить перенос текста ко всему диапазону, вам нужно указать диапазон вместо одной ячейки.
Range("A1:A5").WrapText = True
Вы также можете применить его к используемому диапазону (выбор листа, в который вы вводили данные), используя свойство «UsedRange».
Worksheets("Sheet1").UsedRange.WrapText = True ActiveSheet.UsedRange.WrapText = True

В первой строке приведенного выше кода вы указали рабочий лист , а затем «UsedProperty», чтобы обернуть текст. Во второй строке указан используемый диапазон активного листа . Но обе линии работают одинаково.
Вот еще несколько примеров, которые вам следует знать:
- Несплошные ячейки
- Вся линия
- Весь столбец
- Именованный диапазон

Range("A1:A10,C1:C10").WrapText = True Range("A:A").WrapText = True Range("1:1").WrapText = True Range("myRange").WrapText = True
Перенос текста по всему листу
Чтобы обратиться ко всему листу, вам необходимо использовать свойство Cells, как в следующем коде.
Cells.WrapText = True Worksheets("Sheet1").Cells.WrapText = True

Первая строка кода относится к активному листу, а вторая строка относится к листу «Лист1». Вы также можете использовать цикл с помощью FOR EACH (For Next) , чтобы просмотреть все листы в книге и применить перенос текста ко всем ячейкам.

Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets Cells.WrapText = True Next ws
В приведенном выше коде в качестве переменной используется «ws», затем цикл For Each циклически проходит по всем листам в книге и применяется для переноса текста всего листа с использованием ячеек.
Отключить перенос текста
Как вы видели, вам необходимо включить свойство WrapText, и аналогичным образом вы можете отключить его, используя добавление, объявляющее FALSE.
Range("A1").WrapText = False
Примечание. Вам нужно понять одну вещь: если у вас есть значение в ячейке и ширина ячейки достаточна для хранения этого значения, то даже если вы примените текст к строке, Excel не переместит содержимое на следующую строку .