En el pasado hemos hablado de las bondades de los estilos en Excel. Pero al lado de las bondades convive un problema como el que me consulta un lector:
Pegué en un documento de Excel una celda de otro documento que contenía estilos, ahora han surgido variantes y duplicados de ese estilo y tengo alrededor de 800 estilos parásitos en mi documento, ¿hay alguna forma de eliminarlos todos de un tirón?
Cuando copiamos una celda formada con estilos, tal como describe mi lector, el cuaderno “hereda” los estilos del cuaderno de origen. De manera que si empezamos con los estilos pre-definidos
después de pegar algunas celdas de otros cuadernos podermos encontrarnos con ese cuadro
Excel no tiene un método directo para eliminar todos o parte de los estilos personalizados. Podemos eliminar cada uno por separado apuntando al estilo con el mouse y abriendo el menú contextual
Si queremos eliminar más de tres o cuatro estilos personalizados tendremos que echar mano a las macros.
Sub eliminar_estilos_1()
Dim Estilo As Style
For Each Estilo In ActiveWorkbook.Styles
If Not Estilo.BuiltIn Then
Estilo.Delete
End If
Next Estilo
End Sub
Esta macro elimina todos los estilos personalizados (aquellos que no sean "BuiltIn").
Si queremos eliminar sólo algunos de los estilos y dejar otros tendremos que modificar la macro de esta manera
Sub eliminar_estilos_2()
Dim Estilo As Style
Dim EstElegido As Integer
For Each Estilo In ActiveWorkbook.Styles
If Not Estilo.BuiltIn Then
EstElegido = MsgBox("Eliminar el estilo '" & Estilo.Name & "'?", vbYesNo)
If EstElegido = vbYes Then Estilo.Delete
End If
Next Estilo
End Sub
Sub eliminar_estilos_1()
Dim Estilo As Style
For Each Estilo In ActiveWorkbook.Styles
If Not Estilo.BuiltIn Then
Estilo.Delete
End If
Next Estilo
End Sub
Esta macro elimina todos los estilos personalizados (aquellos que no sean "BuiltIn").
Si queremos eliminar sólo algunos de los estilos y dejar otros tendremos que modificar la macro de esta manera
Sub eliminar_estilos_2()
Dim Estilo As Style
Dim EstElegido As Integer
For Each Estilo In ActiveWorkbook.Styles
If Not Estilo.BuiltIn Then
EstElegido = MsgBox("Eliminar el estilo '" & Estilo.Name & "'?", vbYesNo)
If EstElegido = vbYes Then Estilo.Delete
End If
Next Estilo
End Sub