如果工作表不存在,则运行macros

我试图只运行一组macros,如果工作表尚不存在。 我有一个macros创build一个工作表,并将两张表中的数据合并到另一个工作表中,另一个格式化新工作表。 由于需要在打开的工作簿上运行,因此我无法一次又一次地重新创build工作表。 我一直在尝试以下,但它给出的错误:“子或function未定义”:

Private Sub Workbook_Open() If SheetExist("MyNewSheet") Then End Sub Else Combine Format End Sub 

如果工作表存在,你没有做任何事情,所以改变你的testing。

 Private Sub Workbook_Open() If Not SheetExist("MyNewSheet") Then Combine Format End If End Sub Function SheetExist(sheetname As String) As Boolean SheetExist = True ' replace this with code from link below End Function 

在这里使用答案: Excel VBA如果工作表(“wsName”)存在确定工作表是否存在的函数的示例。

是的,问题是“End Sub”应该是“Exit Sub”你也可以使用上面/下面的解决scheme。

你的固定代码是:

 Private Sub Workbook_Open() If SheetExists("MyNewSheet") Then Exit Sub Else Combine Format End If End Sub 

也:

 Public Function SheetExists(ByVal WorksheetName As String) As Boolean On Error Resume Next WorksheetExists = (Sheets(WorksheetName).Name <> "") On Error GoTo 0 End Function