VBA代码删除它自己的表,留下一个“鬼”表

我有一个Excel表格与VBA代码来调用一个用户窗体。 当我运行该用户表单时,其中一条指令是删除工作表(但由于它首先调用了用户表单,我怀疑表单上的代码仍在运行)。 最后在“VBA Microsoft Excel对象”列表中留下一个“幻影”表。 当选项变灰时,您无法删除这些表格。 因此,我积累了大量的“鬼”床单。

截图 。

工作表上的代码:

Private Sub CommandButton1_Click() Call Show_UserForm End Sub 

任何意见或帮助围绕这个问题将不胜感激。

留下的“鬼”表只是对象的代码。

我不知道这是什么效果,因为您正在删除调用该例程的工作表,但是可以使用ThisWorkbook.VBProject.VBComponents("XXX").Delete删除这些工作表ThisWorkbook.VBProject.VBComponents("XXX").Delete其中XXX(name)的对象。

我面临类似的问题; 所以我想我会张贴,万一有帮助。 我从Excel中删除的工作表是作为对象存在的,我无法手动删除工作表。 当我检查属性,我看到属性“可见”被设置为2(xlSheetVeryHidden)。 我将它们更改为-1,然后我可以删除它们全部。 我使用下面的代码来删除工作表。

但是,我不确定是什么导致了这些床单被隐藏起来。 在我的excel的第一张表格中有一个引用链接到删除的页面,这可能导致了这一点。

 Sub deleteGhosts() Dim wb As Workbook Dim tabname As String Set wb = ThisWorkbook For Each Sheet In wb.Worksheets tabname = Sheet.Name If wb.Worksheets(tabname).Visible = 2 Then MsgBox "Deleting " + tabname wb.Worksheets(tabname).Visible = -1 wb.Worksheets(tabname).Delete End If Next Sheet End Sub