Удаление непечатаемых символов из текста с помощью кода VBA Excel. Метод WorksheetFunction.Clean для удаления из текста всех непечатаемых символов.
Удаление всех непечатаемых символов
Для удаления всех непечатаемых символов из текста в VBA Excel существует метод WorksheetFunction.Clean:
1 2 3 |
Sub Primer1() Range("A3") = WorksheetFunction.Clean(Range("A1")) End Sub |
Результат работы кода на скриншоте ниже.
Удаление символов до и после текста
Удаление непечатаемых символов только перед видимым текстом и после него, не затрагивая непечатаемые знаки внутри видимого текста:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub Primer2() Dim myStr As String myStr = Range("A1").Text 'Удаляем непечатаемые символы в начале строки Do While Asc(myStr) < 32 myStr = Mid(myStr, 2) Loop 'Удаляем непечатаемые символы в конце строки Do While Asc(Right(myStr, 1)) < 32 myStr = Left(myStr, Len(myStr) - 1) Loop Range("A5") = myStr End Sub |
Результат работы кода на скриншоте ниже.
Результаты удаления непечатаемых символов
В ячейке «A1» размещен текст в виде списка с переносами строки как между элементами списка, так и перед и после списка. Результаты удаления непечатаемых символов полностью (ячейка «A3») и частично (ячейка «A5»):
Пример автоподбора высоты и ширины для ячейки с вертикальным списком:
1 2 3 4 5 6 7 |
Sub Primer3() With ActiveCell .ColumnWidth = 100 .EntireColumn.AutoFit .EntireRow.AutoFit End With End Sub |
Параметр .ColumnWidth устанавливается таким, чтобы изначально ширина ячейки получилась больше ширины самой длинной строки в списке, тогда метод .EntireColumn.AutoFit отработает правильно.