检查工作表是否存在于 VBA 中

Iqra Hasnain 2024年2月15日
  1. 检查工作表是否存在于 VBA 中
  2. 检查工作表是否存在于 VBA 中的已关闭工作簿中
检查工作表是否存在于 VBA 中

我们将介绍如何在 Excel 中使用 VBA 检查工作表是否存在。

检查工作表是否存在于 VBA 中

在处理多张工作表时,可能会有一些重复工作表,或者我们可能希望避免创建任何重复工作表。为此,我们可以使用 VBA 检查是否有任何同名的工作表我们可能要为其创建工作表。

要检查工作表是否存在,我们需要一个循环以及工作簿中的每个工作表,并比较我们创建的名称。我们将使用两个循环;第一个是 For each loop,第二个是 If Else 语句。

首先,我们将创建两个变量:一个将存储工作表,第二个将存储我们要查找重复项或检查具有此名称的工作表是否存在的工作表名称。我们将使用 for 循环遍历文件夹中的所有文件,并使用 if-else 语句检查工作表的名称是否与另一个工作表同名。

如果存在同名文件,我们将显示一个消息框,说明工作表存在。否则,消息框将显示该工作表不存在。

代码:

#VBA
Sub sheetCheck()

Dim sheet As Worksheet
Dim Name As String

Name = "Sheet1"

For Each sheet In ThisWorkbook.Worksheets

    If sheet.Name = Name Then

            MsgBox "Yes! " & Name & " is there in the workbook."
            Exit Sub

    End If

Next sheet

MsgBox "No! " & Name & "is not there in the workbook."

End Sub

输出:

检查表是否存在

当我们搜索 sheet1 时,我们得到了肯定的响应,即同名的工作表已经存在。

检查工作表是否存在于 VBA 中的已关闭工作簿中

在某些情况下,我们可能还想检查 excel 文件中已关闭或我们已经处理过的工作表。我们还可以通过使用 VBA 打开文件并使用上面示例中使用的 If else 语句的 For each 循环来检查已关闭的 Excel 文件中的工作表。

让我们尝试在一个封闭的 excel 文件中检查工作表。

代码:

#VBA
Sub checkSheet()

Dim book As Workbook
Dim sheet As Worksheet
Dim Name As String

Name = "Sheet1"

Application.ScreenUpdating = False

Set book = Workbooks.Open _
("C:\Users\Hp9470\Documents\Book2.xlsx")

For Each sheet In book.Worksheets

    If sheet.Name = Name Then

        book.Close SaveChanges:=True
        MsgBox "Yes! Sheet Exists"
        Exit Sub

    End If

Next sheet

Application.ScreenUpdating = False

MsgBox "No! Sheet doesn't exists"

End Sub

输出:

检查表是否存在于已关闭的 Excel 表中

该工作表存在于我们使用 open 函数访问的关闭的 excel 文件中。通过这种方式,我们可以在已打开和已关闭的文件中使用名称来检查工作表。