用於確定工作簿是否打開的 Excel 宏

用於確定工作簿是否打開的 Excel 宏

當您考慮自動打開 Excel 工作簿時,請考慮如果您嘗試打開已打開的工作簿可能會發生什麼情況。在非 VBA 世界中,Excel 嘗試再次打開文件,並顯示警告消息,警告任何未保存的更改都將丟失。您可以通過在嘗試再次打開之前檢查給定文件是否已打開來防止發生此類情況。

用於確定工作簿是否打開的 Excel 宏

避免出現此警告消息。

宏的工作原理

關於這個宏,首先要注意的是它是一個函數,而不是一個 Sub 過程。正如您將看到的,使這個宏成為一個函數使您可以將任何文件名傳遞給它以測試該文件是否已經打開。

這段代碼的要點很簡單。您正在測試給定的文件名以查看它是否可以分配給 Object 變量。只能將打開的工作簿分配給 Object 變量。當您嘗試將關閉的工作簿分配給變量時,會發生錯誤。

如果可以分配給定的工作簿,則該工作簿處於打開狀態;如果發生錯誤,工作簿將關閉。

函數 FileIsOpenTest(TargetWorkbook As String) As Boolean
'第 1 步:聲明變量
    Dim TestBook 作為工作簿
'第 2 步:告訴 Excel 在出錯時恢復
    出錯時繼續下一步
'第 3 步:嘗試將目標工作簿分配給 TestBook
    設置 TestBook = Workbooks(TargetWorkbook)
'第 4 步:如果沒有發生錯誤,則工作簿已經打開
    如果 Err.Number = 0 那麼
    FileIsOpenTest = True
    別的
    FileIsOpenTest = False
    萬一
結束函數

宏所做的第一件事是聲明一個 String 變量,該變量將保存用戶選擇的文件名。TestBook 是您的 String 變量的名稱。

在第 2 步中,您告訴 Excel 運行此代碼可能出錯,並在出現錯誤時恢復代碼。如果沒有這一行,代碼將在發生錯誤時簡單地停止。同樣,您測試給定的文件名以查看它是否可以分配給 Object 變量。如果可以分配給定的工作簿,則它是打開的;如果發生錯誤,則關閉。

在步驟 3 中,您嘗試將給定的工作簿分配給 TestBook Object 變量。您嘗試分配的工作簿是一個名為 TargetWorkbook 的字符串變量。TargetWorkbook 在函數聲明中傳遞給函數(參見代碼的第一行)。這種結構消除了對工作簿名稱進行硬編碼的需要,允許您將其作為變量傳遞。

在步驟 4 中,您只需檢查是否發生錯誤。如果未發生錯誤,則工作簿已打開,因此您將 FileIsOpenTest 設置為 True。如果發生錯誤,則工作簿不會打開,您將 FileIsOpenTest 設置為 False。

同樣,此函數可用於評估您通過其 TargetWorkbook 參數傳遞給它的任何文件。這就是將宏放入函數的美妙之處。

下面的宏演示瞭如何實現這個功能。在這裡,您調用新的 FileIsOpenTest 函數以確保用戶無法打開已打開的文件:

子宏1()

'第一步:定義一個字符串變量

    Dim FName 作為變體

    Dim FNFileOnly 作為字符串

'第 2 步:GetOpenFilename 方法激活對話框

    FName = Application.GetOpenFilename(_

            FileFilter:="Excel 工作簿,*.xl*", _

            標題:="選擇要打開的工作簿", _

            多選:=假)

'第 3 步:如果尚未打開,請打開所選文件

    如果 FName <> False 那麼

    FNFileOnly = StrReverse(Left(StrReverse(FName), _

                 InStr(StrReverse(FName), ") - 1))

智能表9.1.1

智能表9.1.1

Smartsheet 是一個動態工作平台,可讓您管理專案、建立工作流程以及與團隊合作。

共享點

共享點

SharePoint 是一個基於 Web 的協作系統,它使用各種工作流程應用程式、「清單」資料庫和其他 Web 元件以及安全功能來控制業務群組的協同工作。

萬年曆1.0.38/1.0.36

萬年曆1.0.38/1.0.36

萬年日曆是一款手機上的日曆檢視應用程式,可協助您在手機上快速查看陰陽日期,從而安排您的重要工作。

微軟 Outlook 2021

微軟 Outlook 2021

Microsoft Outlook 是由 Microsoft Corporation 開發的商業和生產力應用程式。

點擊按鈕

點擊按鈕

ClickUp 是所有企業評價最高的生產力平台之一。Google、Booking.com、San Diego Padres 和 Uber 等大型企業都使用 ClickUp 來提高工作效率。

PDF-XChange 檢視器 2.5.322.10

PDF-XChange 檢視器 2.5.322.10

PDF 已成為閱讀、建立和傳送文字文件的常用格式。反過來,用於此類文件的程式數量也有所增加。PDF-XChange Viewer 是數量不斷增長的 PDF 檢視器之一。

阿帕契開放辦公室

阿帕契開放辦公室

Apache OpenOffice 提供了一整套可與 Microsoft 365 競爭的 Office 應用程序,尤其是 Excel、PowerPoint 和 Word。它允許您更有效地管理您的項目,並支援多種文件格式。

下載 iTaxviewer 1.8.7

下載 iTaxviewer 1.8.7

iTaxViewer軟體是當今最受歡迎的XML檔案讀取軟體。該軟體是用於讀取稅務總局 XML 格式電子報稅單的應用程式。

硝基 PDF 閱讀器

硝基 PDF 閱讀器

Nitro PDF Reader 是一款方便的 PDF 編輯器,涵蓋了大多數人每天使用 PDF 文件執行的所有基本任務。

福昕閱讀器12

福昕閱讀器12

Foxit Reader主要是一個PDF閱讀器,還允許您建立PDF文件、對其進行簽名、編輯以及添加註釋。它適用於作業系統,有 Microsoft Office 軟體包中各種程式的插件。