Quitar espacios en blanco al seleccionar un rango - Macros

Tengo un código que quita los espacios en blanco pero se ejecuta a partir de la celda A1 y lo que deseo es que se ejecute en función a lo que yo seleccione. Les dejo el código, muchas gracias de antemano.

Sub quita_espacios()
    Set datos = Range("A1").CurrentRegion
    MATRIZ = datos
    With datos
        r = .Rows.Count: C = .Columns.Count
        For I = 1 To r
            For J = 1 To C
                MATRIZ(I, J) = WorksheetFunction.Trim(MATRIZ(I, J))
            Next J
        Next I
        Range(.Address) = MATRIZ
    End With
End Sub

3 respuestas

Respuesta
2

Otra opción a considerar:

Sub Quita_Espacios()
  Selection.Value = Evaluate("=IF({1},TRIM(" & Selection.Address & "))")
End Sub

¡Muchas Gracias! Señor Dante, la verdad no había pensado en esa condición y es muy buena porque sino se me congela el código.

¡Gracias! ¡Muchas Gracias! Señor Dante, la verdad no había pensado en esa condición y es muy buena porque sino se me congela el código.

¡Muchas Gracias! Señor Dante, la verdad no había pensado en esa condición y es muy buena porque sino se me congela el código.

Respuesta
1

Ya encontré como hacerlo, era más fácil de lo que pensaba.

Sub quita_espacios()
For Each celda In Selection
    celda.Value = WorksheetFunction.Trim(celda)
Next celda
End Sub
Respuesta
1

Así quedaría la macro para un rango seleccionado:

Sub quitaEspacios()
'x Elsamatilde
'se trabaja sobre el rango seleccionado
For Each cd In Selection
    cd.Value = Trim(cd.Value)
Next cd
End Sub

Sdos y no olvides valorar las respuestas.

Tu respuesta Kishama Happy es tal como yo te la había pasado... ¿quién llegó antes a la solución? Jejeje

Agradeceré que de todos modos valores las respuestas para que se quiten de la lista de pendientes.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas