Удаление TableStyle из Excel

Я добавил TableStyle в книгу Excel, используя инструкцию:

ActiveWorkbook.TableStyles.Add("PivotTable SS")

Я могу удалить это используя:

ActiveWorkbook.TableStyles("PivotTable SS").Delete

Как я могу программно проверить, существует ли он уже, прежде чем решить, удалять или нет?

В настоящее время я перебираю все стили таблиц и делаю выборочное удаление:

    For Each ts In ActiveWorkbook.TableStyles
        If ts.Name = "PivotTable Style 1" Then
            ts.Delete
        End If
    Next ts

Однако это отнимает много времени. Как я могу просто проверить существование сводной таблицы и удалить ее без зацикливания?

Спасибо:)

1 ответ

Решение

Вы можете попробовать присвоить стиль переменной. Если переменная Nothing, тогда стиль не существует. Если стиль не существует, и вы пытаетесь назначить переменную, вы получите сообщение об ошибке, поэтому вам необходимо временно приостановить обработку ошибки.

Sub DeleteAStyle()

    Dim ts As TableStyle

    On Error Resume Next
    Set ts = ActiveWorkbook.TableStyles("PivotTable Style 1")
    On Error GoTo MyUsualErrorHandler

    If Not ts Is Nothing Then
        ts.Delete
    End If

End Sub
Другие вопросы по тегам