如果工作表不存在,则运行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