繁体   English   中英

如果工作表不存在,请运行宏

[英]Run Macros if Sheet Does Not Exist

我试图仅在不存在工作表的情况下运行一组宏。 我有一个宏,用于创建工作表并将两个工作表中的数据合并到其中,另一个宏用于格式化新工作表。 由于它需要在打开的工作簿上运行,因此无法让它一次又一次地重新创建工作表。 我一直在尝试以下操作,但它给出了错误:“未定义子或函数”:

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

如果工作表存在,您什么也不做,因此请更改测试。

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如果存在WorkSheet(“ wsName”)作为确定表单是否存在的函数的示例。

是的,问题是“ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM