Excluindo estilos personalizados não usados do Excel em massa. Como?

1

Eu herdei a pasta de trabalho do Excel de alguém com várias planilhas e descobri que os problemas que estou encontrando se devem a uma abundância de estilos personalizados.

Esta macro do arquivo hep da Microsoft contava com mais de 5000 estilos

Sub styles()
For i = 1 To ActiveWorkbook.styles.Count
    Worksheets(1).Cells(i, 1) = ActiveWorkbook.styles(i).Name
Next
End Sub

Estou tentando remover todos os estilos personalizados (estranhos), mas mantenha os estilos padrão / padrão.

Eu pesquisei como fazer uma remoção em massa e continuo encontrando um estilo semelhante de macro nos fóruns. Eu escolhi o abaixo, mas infelizmente a linha mpStyle.Delete causa um erro:

Sub ClrStyles()
 Dim mpStyle As Style
  For Each mpStyle In ActiveWorkbook.Styles
   If Not mpStyle.BuiltIn Then
    mpStyle.Delete
   End If
  Next mpStyle
End Sub

O erro que ele retorna é: O método Delete da classe de estilo falhou.

Estou trabalhando no Excel 2010, e a classe Style tem uma função de exclusão, por isso estou confuso porque não funciona.

Alguma ideia?

    
por RocketGoal 21.07.2017 / 11:54

1 resposta

1

Eu usei o nome real do erro e consegui encontrar essa postagem no StackOverflow: Remover o formato desconhecido nos estilos de célula

A linha adicional mpStyle.Locked = FALSE resolveu meu problema.

O código completo é agora:

Sub ClrStyles()
 Dim mpStyle As Style
  For Each mpStyle In ActiveWorkbook.Styles
   If Not mpStyle.BuiltIn Then
    mpStyle.Locked = FALSE
    mpStyle.Delete
   End If
  Next mpStyle
End Sub

Espero que isso ajude os outros. Mike.

    
por 21.07.2017 / 12:02