检查是否存在隐藏的工作表

时间:2018-07-05 09:36:35

标签: excel vba excel-vba

我阅读了很多有关如何查找现有工作表的主题,因为我需要它来作为工作簿。

在执行所有搜索后,我实现了以下代码:

'check if woksheet "tool" exists
On Error Resume Next
If Not Len(Worksheets("tool").Name) Then
    ThisWorkbook.Worksheets.Add(after:=Worksheets("Data"))
    ActiveSheet.Name = "tool"
Else
    Worksheets("tool").Activate
End If
On Error GoTo 0

只要“工具”工作表是可见的,代码就可以很好地运行,而隐藏起来就不再可行了。

到目前为止,我还没有找到满意的答案

2 个答案:

答案 0 :(得分:1)

使用@Rory的技术来测试工作表是否存在,如下所示:

Option Explicit
Public Sub test()
    If Not Evaluate("ISREF('" & "tool" & "'!A1)") Then
        ThisWorkbook.Worksheets.Add after:=Worksheets("Data")
        ActiveSheet.Name = "tool"
    Else
        'Worksheets("tool").Visible = True '<== Also make visible? Optional
        Worksheets("tool").Activate
    End If
End Sub

答案 1 :(得分:0)

'To check if a worksheet exists
Public Function worksheetExists(ByVal wb As Workbook, ByVal sheetNameStr As String) As Boolean

On Error Resume Next
worksheetExists = (wb.Worksheets(sheetNameStr).Name <> "")
Err.Clear: On Error GoTo 0

End Function