У меня есть лист Excel с несколькими строками описаний в одном столбце, я стремлюсь получить vba, который будет проходить через все эти ряды описаний, и обрезать его до определенного предела, например 30 символов, и еслиусечение останавливается на 30 символов в середине слова, затем я хочу полное слово (в этом случае может превышать 30 символов).
Я пытался сделать это с кодом VBA ниже, но я не могучтобы получить то, что я ищу.
Function foo(r As Range)
Dim sentence As Variant
Dim w As Integer
Dim ret As String
' assign this cell's value to an array called "sentence"
sentence = Split(r.Value, " ")
' iterate each word in the sentence
For w = LBound(sentence) To UBound(sentence)
' trim to 6 characters:
sentence(w) = Left(sentence(w), 6)
Next
' Join the array back to a string/sentence
ret = Join(sentence, " ")
'Make sure the sentence is max 20 chars:
ret = Left(ret, 20)
'return the value to your function expression:
foo = ret
End Function
Я ожидаю, что код пройдет через все строки определенного столбца и урежет его до 30 символов, и если усечение останавливается в середине слова, тооно должно держать это слово.