1

Я унаследовал чью-то книгу Excel с несколькими листами и обнаружил, что проблемы, с которыми я сталкиваюсь, связаны с обилием пользовательских стилей.

Этот макрос файла hep от Microsoft насчитал более 5000 стилей

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

Я пытаюсь удалить все пользовательские (странные) стили, но сохраняю стандартные / стандартные стили.

Я искал, как сделать массовое удаление, и продолжаю находить похожий стиль макросов на форумах. Я выбрал один ниже, но, к сожалению, строку mpStyle.Удалить вызывает ошибку:

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

Возвращаемая ошибка: Ошибка удаления метода класса стиля.

Я работаю в Excel 2010, и у класса Style есть функция удаления, поэтому я не понимаю, почему она не работает.

Есть идеи?

1 ответ1

1

Я использовал фактическое имя ошибки и смог найти этот пост в StackOverflow:удалить неизвестный формат в стилях ячеек

Дополнительная строка mpStyle.Заблокировано = ЛОЖЬ решил мою проблему.

Полный код сейчас:

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

Надеюсь, что это помогает другим. Майк.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .