Está en la página 1de 1

20 de febrero de [MANUAL BÁSICO PARA EMPEZAR A TRABAJAR CON MACROS

2014 DE VISUAL BASIC PARA EXCEL]

End If
Loop

6.43. Trocear una frase sin cortar las palabras:


Se querría cortar una frase, sin cortar las palabras, de tal manera que cada trozo de frase,
puesto en celdas adyacentes, no comportara más de 20 caracteres.

Public Sub Parse20PerCell()


Dim bigString As String
Dim tempStr As String
Dim cell As Range
Dim pos As Integer
Set cell = Range("A1")
bigString = cell.Text
Do While bigString <> ""
Set cell = cell.Offset(0, 1)
If Len(bigString) < 21 Then
cell.Value = Trim(bigString)
bigString = ""
Else
tempStr = Right(StrReverse(bigString), 21)
pos = InStr(tempStr, " ")
If pos = 0 Then
MsgBox "More than 20 contiguous characters between spaces."
Else
cell.Value = Trim(StrReverse(Mid(tempStr, pos + 1, 255)))
bigString = Mid(bigString, 22 - pos, 255)
End If
End If
Loop
End Sub

Otra solución:

El número máximo de caracteres de la frase es, en este ejemplo, inferior a 1000 y el número de
celdas en las que el texto se tiene que repartir se supone inferior a 100.

Sub test1()
Set Rng = Sheets(1).Range("A1")
iTotal = Mid(Rng, k + 1, 1000) & " "
For j = 2 To 100
For i = 21 To 1 Step -1
If Mid(iTotal, i, 1) = " " Then

40

También podría gustarte