我使用以下语句将ExcelStyle添加到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

然而,这非常耗时。如何检查数据透视表是否存在并删除它而不循环?

谢谢:)

有帮助吗?

解决方案

您可以尝试将样式指定给变量。如果变量为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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top