Como aplicar Clean function a una hoja completa con una macro

Tengo una hoja en excel que a cada columna le aplico la función Clean, pero necesito hacerlo a través de una macro, estuve viendo Worksheetfunction. Clean method, ¿para recorrer cada fila y columna con dato de la hoja? Pero no logro que funcione.

Aleida

2 respuestas

Respuesta
1

Con cells. Clear borras el contenido de toda la hoja, con cells. Clearcontents borras solo la información manteniendo intactos los formatos por ejemplo:

sub borrar

Sheets("hoja1"). Cells. Clear

Sheets("hoja1"). Cells. Clearcontents

Sheets("hoja1").range("a:a"). Clear

Sheets("hoja1").range("a:z"). Clear 'o clearcontents.

end sub

Hay más instrucciones estas 4 son solo un ejemplo

Hi James,

No es borrar el contenido de la celda, si no limpiarla de los caracteres no imprimibles que contenga. Yo estoy usando la función Clean() pero necesito llevarla a una macro.

Entonces prueba esta macro, la cual comienza leyendo la información desde la celda A1, luego determina cuantas filas y columnas va a procesar, después mediante dos ciclos for dependientes lee de izquierda a derecha los datos de la primera fila y los va colocando en una variable llamada dato, la cual es limpiada con la opción clean y esta variable reemplaza el contenido de la celda analizada.

Sub limpiar()
Set datos = Range("a1").CurrentRegion
With datos
    filas = .Rows.Count
    col=.columns.count
    For i = 1 To filas
        For j = 1 To col
            dato = .Cells(i, j)
            .Cells(i, j) = WorksheetFunction.Clean(dato)
        Next j
    Next i
End With
Set datos = Nothing
End Sub
Respuesta
1

[Hola

Si te refieres al equivalente a la función "Limpiar", pues comenta si quieres que los resultados se queden en la misma columna o en otra aparte.

Abraham Valencia

En la misma columna

[Hola

Suponiendo que estamos hablando de la columna A y que no necesariamente sabes cuál es la última celda llena y además que en A1 tienes un encabezado, entonces algo como esto te ayudará:

Sub Limpiando()
Dim UltimaFila As Long, x As Long
Dim Celda As Range
Let UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row
For Each Celda In Range("A2:A" & UltimaFila)
    Celda.Value = Application.WorksheetFunction.Clean(Celda)
Next Celda
End Sub

Saludos]

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas