
решение1
Попробуйте этот небольшой макрос VBA:
Sub StyleKiller()
Dim N As Long, i As Long
With ActiveWorkbook
N = .Styles.Count
For i = N To 1 Step -1
If Not .Styles(i).BuiltIn Then .Styles(i).Delete
Next i
End With
End Sub
Это решаетВстроенныйпротивОбычайпроблема. Обратите внимание, мы запускаем циклназадчтобы избежать повреждения индекса цикла.
решение2
Чтобы просто удалить все без использования INDEX
, попробуйте сделать следующее:
Sub StyleKiller()
Dim st As Style
On Error Resume Next
For Each st In ActiveWorkbook.Styles
If Not st.BuiltIn Then
st.Delete
End If
Next
On Error GoTo 0
End Sub
решение3
Все вышеперечисленное работает, но наши рабочие ПК довольно старые, поэтому макросы постоянно зависали. По какой-то причине многие файлы имеют сотни стилей ячеек, что замедляет работу документов.
Решение оказалось простым и быстрым.
Выберите все рабочие листы в вашей рабочей книге и скопируйте их в новую книгу. Это сохранит все внешние ссылки и форматы и все, кроме стилей, которые не копируются.
Сохраните новую книгу поверх старой (сначала закройте старую).
решение4
Вопрос пользовательских стилей также обсуждается вhttp://support.microsoft.com/kb/213904
Я обнаружил, что установка бесплатного инструмента «XLStyles Tool» из Microsoft Store, как предлагается в статье базы знаний, является очень удобным способом удаления пользовательских стилей.