检查工作表是否存在于 VBA 中
Iqra Hasnain
2024年2月15日
我们将介绍如何在 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
输出:
该工作表存在于我们使用 open 函数访问的关闭的 excel 文件中。通过这种方式,我们可以在已打开和已关闭的文件中使用名称来检查工作表。