如果工作表不存在则运行宏

时间:2014-10-22 19:59:24

标签: excel vba excel-vba

如果工作表尚未存在,我只想运行一组宏。我有一个宏创建一个工作表,并将两张纸的数据组合到其中,另一个宏格式化新工作表。由于它需要在工作簿上运行,我无法一次又一次地重新创建工作表。我一直在尝试以下方法,但它给出了错误:" sub或函数未定义":

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

2 个答案:

答案 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