tags:

views:

43

answers:

1

Hi, I have added a TableStyle to excel workbook using the statement:

ActiveWorkbook.TableStyles.Add("PivotTable SS")

I can delete it using:

ActiveWorkbook.TableStyles("PivotTable SS").Delete

How can I programmatically check if it already exists before deciding whether to delete or not?

Currently I am looping through all the table styles and doing a selective delete:

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

However, this is time-consuming. How can I just check for the pivot table existence and delete it without looping?

Thanks :)

+1  A: 

You can try assigning the style to a variable. If the variable is Nothing, then the style does not exist. If the style does not exist and you try to assign the variable, you will get an error message, so you need to temporarily suspend the error handling.

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
Thanks Dendarii .. this helped :)
Rashmi Pandit