【发布时间】:2019-12-19 14:30:59
【问题描述】:
下面的代码有问题。
当用户关闭工作簿时,我想删除除特定工作表之外的所有可见工作表。 这是代码:
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 中的对象?
【问题讨论】:
-
For Each ws In ThisWorkbook.Worksheets -
在您的代码顶部键入
Option Explicit... -
我的天啊,当然……放屁,谢谢。
-
或稍短的
For Each ws in Me.Worksheets,因为这是在ThisWorkbook模块中。 -
您的代码将删除除“Choose BU”之外的所有工作表,而不是“Choose BU”之后的所有工作表,不是吗。