Hola, el problema que tengo es cuando intento Eliminar los saltos de línea en la misma macro, solo me selecciona el Rango de celdas pero no realiza la acción.
Esta es la macro:
Dim final
Private Sub CommandButton1_Click(): Dim n As Long
With ListBox1
For n = 0 To .ListCount - 1: maxCar .List
, 10 ' <= corrige el 10 si quieres otro maximo de caracteres '
[b50].End(xlUp).Offset(1).Resize(UBound(final) + 1) = Application.Transpose(final)
Next: End With
' HASTA AQUI TODO PERFECTO
' AQUI ES DONDE SOLAMENTE SELECCIONA EL RANGO PERO NO ELIMINA LOS SALTOS DE LINEA, DEBERIA ELIMINARLOS
Hoja1.Range("B1:B50").Select
For Each celda In Selection
celda.Value = Replace(celda.Value, Chr(10), "")
Next
End Sub
Private Function maxCar(cadena As String, n As Long) As String: Dim cars, x As Long, mtz
With CreateObject("vbscript.regexp"): .Pattern = "(.{1," & n & "})"
.Global = True: .IgnoreCase = True: Set cars = .Execute(cadena)
For x = 0 To cars.Count - 1: mtz = mtz & vbLf & cars(x): Next
End With: final = Split(Mid(mtz, 2), vbLf): Set cars = Nothing
End Function
Esta es la macro:
Dim final
Private Sub CommandButton1_Click(): Dim n As Long
With ListBox1
For n = 0 To .ListCount - 1: maxCar .List
[b50].End(xlUp).Offset(1).Resize(UBound(final) + 1) = Application.Transpose(final)
Next: End With
' HASTA AQUI TODO PERFECTO
' AQUI ES DONDE SOLAMENTE SELECCIONA EL RANGO PERO NO ELIMINA LOS SALTOS DE LINEA, DEBERIA ELIMINARLOS
Hoja1.Range("B1:B50").Select
For Each celda In Selection
celda.Value = Replace(celda.Value, Chr(10), "")
Next
End Sub
Private Function maxCar(cadena As String, n As Long) As String: Dim cars, x As Long, mtz
With CreateObject("vbscript.regexp"): .Pattern = "(.{1," & n & "})"
.Global = True: .IgnoreCase = True: Set cars = .Execute(cadena)
For x = 0 To cars.Count - 1: mtz = mtz & vbLf & cars(x): Next
End With: final = Split(Mid(mtz, 2), vbLf): Set cars = Nothing
End Function
Última edición: