檢查工作表是否存在於 VBA 中
Iqra Hasnain
2023年1月30日
2022年6月21日
我們將介紹如何在 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 檔案中。通過這種方式,我們可以在已開啟和已關閉的檔案中使用名稱來檢查工作表。