Saltar al contenido

Función TRIM / eliminar espacios de las celdas usando VBA

Solución:

Obtendrá un rendimiento mucho mejor copiando los datos en una matriz y trabajando en la matriz, luego colocando los datos nuevamente en el rango.

Además, no use Excel.Application.Trim. Esa es la sintaxis de Excel 95 y una llamada de destino tardío con manejo de errores inesperados. VBA tiene un Trim función incorporada: es aproximadamente 10 veces más rápido y proporciona Intellisense.

Sub test()

    'Assuming ScenarioTable is a range
    Dim ScenarioTable As Range
    Set ScenarioTable = Range("ScenarioTable")

    'I assume your range might have some formulas, so...
    'Get the formulas into an array
    Dim v As Variant
    v = ScenarioTable.Formula

    Dim a As Long
    Dim f As Long
    'Then loop over the array
    For a = LBound(v, 1) To UBound(v, 1)
        For f = LBound(v, 2) To UBound(v, 2)
            If Not IsEmpty(v(a, f)) Then
                v(a, f) = VBA.Trim(v(a, f))
            End If
        Next f
    Next a
    'Insert the results
    ScenarioTable.Formula = v
End Sub

Hágalo en todo el rango a la vez usando la versión de matriz de Excel Trim:

myRange.Value = Application.Trim(myRange.Value)

Usando las únicas variables visibles en su código, sería:

With Range(Cells(1,1), Cells(ScenarioTableLastRow, ScenarioTableLastColumn))
     .Value = Application.Trim(.Value)
End With
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *