Espero que pueda presumir que lo está haciendo por motivos de rendimiento. Como se explicó anteriormente, no es posible de la misma manera que con el contenido de la celda.
Sin embargo, si el formateo de las celdas es a menudo el mismo que la última vez que lo formateó, es mucho más rápido verificar primero si el formato necesita cambiar, y solo luego cambiarlo.
Aquí hay una función que puede hacerlo. En las pruebas (Excel 2003), esto se ejecuta 8x-10x más rápido que siempre establecer el formato, y eso es con la actualización de la pantalla desactivada.
Sub SetProperty(ByRef obj As Object, propname, newvalue)
If CallByName(obj, propname, VbGet) <> newvalue Then
Call CallByName(obj, propname, VbLet, newvalue)
End If
End Sub
llamada así:
Call SetProperty(Cells(1,1).Font, "ColorIndex", 27)
Call SetProperty(Cells(1,1).Borders, "Weight", xlMedium)
etc
Estoy bastante seguro de que puede aplicar formato a un rango de varias celdas y no tener que hacerlo celda por celda, pero no lo hago hacer un montón de formateo. Probablemente alguien que lo haga dará una respuesta real ... – jtolle
Wow, he entendido mal la pregunta. Sin embargo, la respuesta de Lance Roberts parece correcta. – jtolle