Возможно, это не совсем то, что имел в виду ОП, но я решил, что поделюсь своей функцией VBA Word Wrap , так как я не мог найти в Интернете ничего, что можно было бы сделать что я хотел.
Эта функция вставляет CR + LF в строку, чтобы обернуть ее, поэтому перенос слов сохраняется, если текст копируется в другое приложение, текстовое или иным образом.
Function wrapText(strIn As String, Optional maxLen As Long = 110) As String
Dim p As Long: wrapText = strIn
Do
p = InStrRev(wrapText, " ", p + maxLen) - 1
wrapText = Left(wrapText,p) & vbCrLf & Right(wrapText, Len(wrapText)-p-1)
Debug.Print Mid(Replace(wrapText, vbCrLf, "||"), p - 20)
'Stop
Loop While p + maxLen < Len(wrapText)
End Function
По умолчанию максимальная ширина составляет 115 символов, но при желании его можно изменить на что угодно. Он разбивается только на пробелы (последний, который появляется в / перед позицией # 115) и вставляет только CR + LF (с константой vbCrLf
), но они могут быть адаптированы по мере необходимости.
В качестве примера приложения я строил сложные запросы SQL в Excel и хотел аккуратно и аккуратно скопировать SQL в серверное приложение вместо одной гигантской строки.