檢查工作表是否存在於 VBA 中

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