检查表是否存在

13 浏览
0 Comments

检查表是否存在

我想要检查名为“test”的工作表是否存在,如果不存在,则创建并将该工作表命名为“test”。

如果存在,则运行一段我没有在这里放出的单独的代码块。我在其中使用了错误处理,即忽略发生的错误。

无论我做什么,这段代码始终运行并创建一个新的工作表。

如果工作表“test”不存在,代码可以正常运行。它会创建一个新的工作表并重新命名,然后继续执行。显然,在另一种情况下,它不会重新命名工作表,因为已经有另一个名称为“test”的工作表。

0
0 Comments

问题原因:不确定为什么会添加额外的工作表,需要使用外部函数来检查工作表是否存在。

解决方法:使用以下代码进行检查,并添加对"test2"的错误检查。

Sub Test()
    Dim wsName As String: wsName = "test"
    If Not WorkSheetExists(wsName) Then Worksheets.Add().Name = wsName
    If WorkSheetExists("test2") Then Worksheets(wsName).Move _
        After:=ThisWorkbook.Worksheets("test2")
End Sub
Function WorkSheetExists(ByVal strName As String) As Boolean
   On Error Resume Next
   WorkSheetExists = Not ActiveWorkbook.Worksheets(strName) Is Nothing
End Function

更新函数以指定要测试的工作簿:

Function WorkSheetExists(ByVal SheetName As String, Optional ByRef WorkbookToTest As Workbook) As Boolean
   On Error Resume Next
   If WorkbookToTest Is Nothing Then Set WorkbookToTest = ThisWorkbook
   WorkSheetExists = Not WorkbookToTest.Worksheets(SheetName) Is Nothing
End Function

该方法不起作用。尝试了这种方法和使用循环遍历所有工作表的方法,基本上都没有任何作用。它根本不接近名为wsname的工作表。

0
0 Comments

问题的出现原因:在VBA中,有时候我们需要检查一个工作簿中是否存在某个工作表,但是没有提供直接的函数来实现这个功能,所以需要通过编写代码来实现。

解决方法:通过编写上述的VBA代码,可以检查工作簿中是否存在名为"MySheet"的工作表,如果不存在,则新建一个名为"MySheet"的工作表。

VBA是一种用于自动化任务的编程语言,对于不太熟悉VBA的人来说,可以使用下面的代码来检查工作簿中是否存在某个工作表。代码如下所示:

Sub checkSheet()
    For i = 1 To Worksheets.Count
        If Worksheets(i).Name = "MySheet" Then
            exists = True
        End If
    Next i
    If Not exists Then
        Worksheets.Add.Name = "MySheet"
    End If
End Sub

上述代码使用了一个循环来遍历工作簿中的所有工作表,通过判断工作表的名称是否与"MySheet"相等,来确定是否存在名为"MySheet"的工作表。如果存在,则将一个布尔变量exists设置为True。如果不存在,则新建一个名为"MySheet"的工作表。

通过以上的代码,我们可以很方便地检查工作簿中是否存在某个工作表,并根据需要进行相应的处理。这种方法可以在VBA中实现检查工作表是否存在的功能。

0
0 Comments

问题的原因是判断Excel工作簿中是否存在某个特定的工作表。解决方法是通过创建一个工作表名称的字典,然后使用exists函数来测试工作表是否存在。以下是具体步骤:

1. 首先声明一个对象变量sheetNames和一个工作表变量ws。

2. 创建一个Scripting.Dictionary对象,并将其赋值给sheetNames变量。

3. 使用For Each循环遍历工作簿中的每个工作表,将工作表名称和索引添加到字典中。

4. 使用exists函数来判断字典中是否存在指定的工作表名称(这里是"test")。

5. 如果工作表不存在,则执行以下操作:

a. 使用Worksheets.Add方法在工作簿中添加一个新的工作表,并将其命名为"test"。

b. 将新添加的工作表的名称和索引添加到字典中。

通过以上步骤,我们可以判断Excel工作簿中是否存在指定的工作表,并根据需要进行相应的操作。

0