如果工作表尚未存在,我只想运行一组宏。我有一个宏创建一个工作表,并将两张纸的数据组合到其中,另一个宏格式化新工作表。由于它需要在工作簿上运行,我无法一次又一次地重新创建工作表。我一直在尝试以下方法,但它给出了错误:" sub或函数未定义":
Private Sub Workbook_Open()
If SheetExist("MyNewSheet") Then
End Sub
Else
Combine
Format
End Sub
答案 0 :(得分:2)
如果工作表存在,您没有做任何事情,所以请更改您的测试。
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 If WorkSheet("wsName") Exists获取确定工作表是否存在的函数示例。
答案 1 :(得分:2)
是的,问题是“End Sub”应该是“Exit Sub”你也可以使用上面/下面的解决方案。
您的固定代码是:
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