我阅读了很多有关如何查找现有工作表的主题,因为我需要它来作为工作簿。
在执行所有搜索后,我实现了以下代码:
'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
只要“工具”工作表是可见的,代码就可以很好地运行,而隐藏起来就不再可行了。
到目前为止,我还没有找到满意的答案
答案 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