首页 > 解决方案 > 删除所有可见工作表,但特定工作表

问题描述

我对以下代码有疑问。

当用户关闭工作簿时,我想删除除特定工作表之外的所有可见工作表。这是代码:

Private Sub workbook_BeforeClose(cancel As Boolean)
Dim ws As Worksheet

For Each ws In Workbook
    If ws.Visible = xlSheetVisible Then
        If ws.Name <> "Choose BU" Then ws.Delete
    End If
Next ws

End Sub

它说“需要对象”,但是我认为默认的工作表是 VBA 中的对象?

标签: excelvba

解决方案


你可以试试:

Option Explicit

Sub test()

    Dim ws As Worksheet

    Application.DisplayAlerts = False

    For Each ws In ThisWorkbook.Worksheets

        With ws

            If .Visible = True And .Name <> "Choose BU" Then
                .Delete
            End If

        End With

    Next ws

    Application.DisplayAlerts = True

End Sub

推荐阅读