Удаление 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

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

Спасибо :)


person SO User    schedule 22.10.2009    source источник


Ответы (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
person dendarii    schedule 22.10.2009
comment
Спасибо Dendarii .. это помогло :) - person SO User; 23.10.2009