如何在 Excel 中打開和使用 Visual Basic 編輯器

如何在 Excel 中打開和使用 Visual Basic 編輯器

在 Excel 中使用 VBA 的第一步是讓自己熟悉 Visual Basic 編輯器(也稱為 VBA 編輯器或 VB 編輯器)。

在本教程中,我將介紹有關 VBA 編輯器的所有知識,以及在 Excel VBA 中編碼時應了解的一些有用選項。

Excel 中的 Visual Basic 編輯器是什麼?

Visual Basic 編輯器是一個單獨的應用程序,它是 Excel 的一部分,只要您打開 Excel 工作簿就會打開。默認情況下,它是隱藏的,要訪問它,您需要激活它。

VB 編輯器是保存 VB 代碼的地方。

您可以通過多種方式在 VB 編輯器中獲取代碼:

  1. 當您錄製宏時,它會自動在 VB 編輯器中創建一個新模塊並將代碼插入該模塊中。
  2. 您可以在 VB 編輯器中手動鍵入 VB 代碼。
  3. 您可以從其他工作簿或 Internet 複製代碼並將其粘貼到 VB 編輯器中。

打開 VB 編輯器

在 Excel 中打開 Visual Basic 編輯器有多種方法:

  1. 使用鍵盤快捷鍵(最簡單、最快)
  2. 使用開發人員選項卡。
  3. 使用工作表選項卡。

讓我們快速瀏覽每一個。

打開 Visual Basic 編輯器的鍵盤快捷鍵

打開 Visual Basic 編輯器的最簡單方法是使用鍵盤快捷鍵 – ALT + F11(按住 ALT 鍵並按 F11 鍵)。

執行此操作後,它將為 Visual Basic 編輯器打開一個單獨的窗口。

相關問題  如何將 Excel 單元格中的多行拆分為單獨的單元格/列

此快捷方式用作切換,因此當您再次使用它時,它將帶您回到 Excel 應用程序(無需關閉 VB 編輯器)。

Mac 版本的快捷鍵是Opt + F11Fn + Opt + F11

使用開發人員選項卡

要從功能區打開 Visual Basic 編輯器:

  1. 單擊“開發人員”選項卡(如果您沒有看到“開發人員”選項卡,請閱讀如何獲取它)。
  2. 在代碼組中,單擊 Visual Basic。

功能區中的 Visual Basic 編輯器按鈕

使用工作表選項卡

這是一種較少使用的打開 Vb 編輯器的方法。

轉到任何工作表選項卡,右鍵單擊,然後選擇“查看代碼”。

查看代碼以打開 VB 編輯器

此方法不僅會打開 VB 編輯器,還會將您帶到該工作表對象的代碼窗口。

當您要編寫僅適用於特定工作表的代碼時,這很有用。這通常是工作表事件的情況。

Excel 中的 Visual Basic 編輯器剖析

當您第一次打開 VB 編輯器時,它可能看起來有點不知所措。

有不同的選項和部分,起初可能看起來是全新的。

此外,它仍然具有舊的 Excel 97 天外觀。多年來,雖然 Excel 在設計和可用性方面有了很大改進,但 VB 編輯器的外觀並沒有發生任何變化。

在本節中,我將帶您了解 Visual Basic 編輯器應用程序的不同部分。

注意:當我幾年前開始使用 VBA 時,我對所有這些新選項和窗口感到不知所措。但是當您習慣使用 VBA 時,您會對其中的大部分內容感到滿意。大多數情況下,您不需要使用所有選項,只需一手即可。

下面是 VB 編輯器不同組件的圖像。然後在本教程的以下部分中詳細描述這些內容。

Excel 中 VB 編輯器的不同部分

現在讓我們快速瀏覽每個組件並了解它的作用:

菜單欄

這是您可以在 VB 編輯器中使用的所有選項的地方。它類似於 Excel 功能區,其中每個選項卡都有選項卡和選項。

您可以通過單擊每個菜單元素來探索可用選項。

您會注意到 VB 編輯器中的大多數選項旁邊都提到了鍵盤快捷鍵。一旦您習慣了一些鍵盤快捷鍵,使用 VB 編輯器就變得非常容易。

工具欄

默認情況下,VB 編輯器中有一個工具欄,其中包含一些您可能最常需要的有用選項。這就像 Excel 中的快速訪問工具欄。它使您可以快速訪問一些有用的選項。

您可以通過刪除或添加選項來稍微自定義它(通過單擊工具欄末尾的小向下箭頭)。

在工具欄中添加或刪除選項

在大多數情況下,使用 VB 編輯器時,您只需要默認工具欄即可。

您可以通過單擊三個灰點(在工具欄的開頭)並將其拖動到菜單欄上方來將工具欄移動到菜單欄上方。

注意:VB 編輯器中有四個工具欄——標準、調試、編輯和用戶窗體。您在上圖中看到的(也是默認的)是標準工具欄。您可以通過轉到“查看”選項並將光標懸停在“工具欄”選項上來訪問其他工具欄。如果需要,您可以將一個或多個工具欄添加到 VB 編輯器。

項目瀏覽器

項目資源管理器是左側的一個窗口,顯示當前在 Excel 中打開的所有對象。

使用 Excel 時,每個打開的工作簿或加載項都是一個項目。這些項目中的每一個都可以包含一組對象。

例如,在下圖中,Project Explorer 顯示了兩個打開的工作簿(Book1 和 Book2)以及每個工作簿中的對象(工作表、ThisWorkbook 和 Book1 中的模塊)。

對象左側有一個加號圖標,您可以使用它來折疊對象列表或展開並查看對象的完整列表。

Excel VBA 編輯器中的項目資源管理器

以下對象可以是 Project Explorer 的一部分:

  1. 所有打開的工作簿 – 在每個工作簿(也稱為項目)內,您可以擁有以下對象:
    • 工作簿中每個工作表的工作表對象
    • ThisWorkbook 對象,代表工作簿本身
    • 每個圖表工作表的Chartsheet 對象(這些不像工作表那樣常見)
    • 模塊——這是使用宏記錄器生成的代碼所在的位置。您還可以在此處編寫或複制粘貼 VBA 代碼。
  2. 所有打開的加載項

將 Project Explorer 視為一個概述在給定時間在 Excel 中打開的所有對象的地方。

打開 Project Explorer 的鍵盤快捷鍵是Control + R(按住 control 鍵,然後按 R)。要關閉它,只需單擊 Project Explorer 窗口右上角的關閉圖標。

注意:對於 Project Explorer 中的每個對象,都有一個代碼窗口,您可以在其中編寫代碼(或從某處複製和粘貼)。雙擊對象時會出現代碼窗口。

屬性窗口

屬性窗口是您可以查看選擇對象的屬性的地方。如果您還沒有“屬性”窗口,可以使用鍵盤快捷鍵 F4(或轉到“查看”選項卡並單擊“屬性”窗口)來獲取它。

相關問題  購買二手顯示器前的檢查清單

屬性窗口是一個浮動窗口,您可以停靠在 VB 編輯器中。在下面的示例中,我將它停靠在 Project Explorer 下方。

屬性窗口停靠在項目資源管理器下方

屬性窗口允許我們更改選定對象的屬性。例如,如果我想讓工作表隱藏(或非常隱藏),我可以通過更改所選工作表對象的 Visible 屬性來實現。

在屬性窗口中更改工作表的可見屬性

代碼窗口

Project Explorer 中列出的每個對像都有一個代碼窗口。您可以通過在項目資源管理器區域中雙擊對象來打開對象的代碼窗口。

代碼窗口是您編寫代碼或從其他地方復制粘貼代碼的地方。

當您錄製宏時,它的代碼會進入模塊的代碼窗口。Excel 在錄製宏時會自動插入一個模塊以將代碼放入其中。

即時窗口

立即窗口主要用於調試代碼。我使用即時窗口的一種方法是在代碼中使用 Print.Debug 語句,然後運行代碼。

它可以幫助我調試代碼並確定我的代碼卡在哪裡。如果我在即時窗口中得到 Print.Debug 的結果,我知道代碼至少在該行之前有效。

如果您不熟悉 VBA 編碼,可能需要一些時間才能使用即時窗口進行調試。

默認情況下,即時窗口在 VB 編輯器中不可見。您可以使用鍵盤快捷鍵 Control + G 來獲取它(或者可以轉到“視圖”選項卡並單擊“立即窗口”)。

在 VB 編輯器中添加代碼的位置

我希望您現在對 VB 編輯器是什麼以及它的所有部分有一個基本的了解。

在本教程的這一部分中,我將向您展示在 Visual Basic 編輯器中添加 VBA 代碼的位置。

有兩個地方可以在 Excel 中添加 VBA 代碼:

  1. 對象的代碼窗口。這些對象可以是工作簿、工作表、用戶表單等。
  2. 模塊的代碼窗口。

模塊代碼窗口與對象代碼窗口

首先讓我快速弄清楚在模塊中添加代碼與在目標代碼窗口中添加代碼之間的區別。

當您將代碼添加到任何對象時,它取決於該對象的某些操作,該操作將觸發該代碼。例如,如果您想在打開該工作簿後立即取消隱藏該工作簿中的所有工作表,則代碼將進入 ThisWorkbook 對象(代表工作簿)。

在這種情況下,觸發器是打開工作簿。

同樣,如果您想在激活其他工作表後立即保護工作表,則該代碼將進入工作表代碼窗口。

這些觸發器稱為事件,您可以關聯事件發生時要執行的代碼。

相反,模塊中的代碼需要手動執行(或者也可以從其他子程序調用)。

當您錄製宏時,Excel 會自動創建一個模塊並將錄製的宏代碼插入其中。現在如果你必須運行這段代碼,你需要手動執行宏。

在模塊中添加 VBA 代碼

雖然錄製宏會自動創建一個模塊並將代碼插入其中,但使用宏錄製器時存在一些限制。例如,它不能使用循環或 If Then Else 條件。

在這種情況下,最好手動複製和粘貼代碼或自己編寫代碼。

模塊可用於保存以下類型的 VBA 代碼:

  1. 聲明:您可以在模塊中聲明變量。聲明變量允許您指定變量可以保存的數據類型。您可以僅為子例程或模塊中的所有子例程(或所有模塊)聲明變量
  2. 子例程(過程):這是包含您希望 VBA 執行的步驟的代碼。
  3. 函數過程:這是一個返回單個值的代碼,您可以使用它來創建自定義函數(在 VBA 中也稱為用戶定義函數或 UDF)

默認情況下,模塊不是工作簿的一部分。使用前需要先插入。

在 VB 編輯器中添加模塊

以下是添加模塊的步驟:

  1. 右鍵單擊工作簿的任何對象(您想要模塊在其中)。右鍵單擊任何對象
  2. 將光標懸停在插入選項上。
  3. 點擊模塊。點擊模塊

這將立即創建一個名為 Module 的文件夾並插入一個名為 Module 1 的對象。如果您已經插入了一個模塊,則上述步驟將插入另一個模塊。

在 VB 編輯器中插入模塊

插入模塊後,您可以在項目資源管理器中雙擊模塊對象,它將為其打開代碼窗口。

現在您可以復制粘貼代碼或自己編寫代碼。

卸下模塊

以下是在 Excel VBA 中刪除模塊的步驟:

  1. 右鍵單擊要刪除的模塊。
  2. 單擊刪除模塊選項。在 VB 編輯器中刪除項目的模塊
  3. 在打開的對話框中,單擊否。刪除模塊前的提示

注意:您可以在刪除模塊之前將其導出。它被保存為 .bas 文件,您可以將其導入其他項目。要導出模塊,請右鍵單擊該模塊,然後單擊“導出文件”。

將代碼添加到對象代碼窗口

要打開對象的代碼窗口,只需雙擊它。

當它打開時,您可以手動輸入代碼或從其他模塊或互聯網複製粘貼代碼。

請注意,某些對象允許您選擇要為其編寫代碼的事件。

例如,如果您想為工作表中選擇更改時發生的事情編寫代碼,您需要首先從代碼窗口左上角的下拉列表中選擇工作表,然後從下拉列表中選擇更改事件- 在右邊。

VBA 代碼窗口中的選擇更改事件

注意:這些事件特定於對象。當您打開工作簿的代碼窗口時,您將看到與工作簿對象相關的事件。當您打開工作表的代碼窗口時,您將看到與工作表對象相關的事件。

自定義 VB 編輯器

雖然 Visual Basic 編輯器的默認設置對大多數用戶來說已經足夠好,但它確實允許您進一步自定義界面和一些功能。

在本教程的這一部分中,我將向您展示自定義 VB 編輯器時的所有選項。

要自定義 VB 編輯器環境,請單擊菜單欄中的工具,然後單擊選項。

這將打開“選項”對話框,該對話框將為您提供 VB 編輯器中的所有自定義選項。“選項”對話框有四個選項卡(如下所示),它們具有 Visual Basic 編輯器的各種自定義選項。

自定義 Vb 編輯器的選項

讓我們快速瀏覽每個選項卡以及每個選項卡中的重要選項。

編輯器選項卡

雖然內置設置在大多數情況下都可以正常工作,但讓我仍然瀏覽此選項卡中的選項。

隨著您在 Excel 中更熟練地使用 VBA,您可能希望使用其中一些選項自定義 VB 編輯器。

自動語法檢查

在 Excel 中使用 VBA 時,一旦出現語法錯誤,就會彈出一個對話框(帶有一些關於錯誤的描述)。如下圖所示:

相關問題  Truecaller Premium - 常見問題 (FAQ)

Visual Basic 編輯器選項中的自動語法檢查

如果禁用此選項,即使出現語法錯誤,此彈出框也不會出現。但是,代碼文本中的顏色會發生變化,以指示存在錯誤。

如果您是初學者,我建議您啟用此選項。隨著您對編碼的經驗越來越豐富,您可能會開始發現這些彈出框令人討厭,然後您可以禁用此選項。

需要變量聲明

這是我建議啟用的一個選項。

當您使用 VBA 時,您將使用變量來保存不同的數據類型和對象。

當您啟用此選項時,它會自動在代碼窗口頂部插入“Option Explicit”語句。這迫使您聲明您在代碼中使用的所有變量。如果不聲明變量並嘗試執行代碼,會報錯(如下圖)。

Excel VBA中的變量未聲明錯誤

在上面的例子中,我使用了變量 Var,但我沒有聲明它。因此,當我嘗試運行代碼時,它會顯示錯誤。

當您有很多變量時,此選項非常有用。它通常可以幫助我找到拼寫錯誤的變量名稱,因為它們被視為未聲明並顯示錯誤。

注意:啟用此選項時,它不會影響現有模塊。

自動列表成員

此選項非常有用,因為它可以幫助您獲取對象方法的屬性列表。

例如,如果我想刪除一個工作表(Sheet1),我需要使用 Sheet1.Delete 行。

當我輸入代碼時,只要我輸入點,它就會顯示與 Worksheet 對象關聯的所有方法和屬性(如下所示)。

VB 編輯器中的自動列表成員選項

自動列表功能非常棒,因為它允許您:

  • 從列表中快速選擇屬性和方法,節省時間
  • 向您展示您可能不知道的所有屬性和方法
  • 避免拼寫錯誤

默認情況下啟用此選項,我建議保持這種狀態。

自動快速信息選項

當您在 Excel 工作表中鍵入一個函數時,它會向您顯示有關該函數的一些信息——例如它採用的參數。

同樣,當您在 VBA 中鍵入一個函數時,它會向您顯示一些信息(如下所示)。但要做到這一點,您需要確保啟用“自動快速信息”選項(默認情況下)。

VB 編輯器中的自動快速信息選項

自動數據提示選項

當您逐行瀏覽代碼並將光標放在變量名上方時,它將顯示變量的值。

我發現它在調試代碼或逐行瀏覽包含循環的代碼時非常有用。

Visual Basic 編輯器選項中的自動數據提示選項

在上面的示例中,只要我將光標放在變量 (var) 上,它就會顯示它所保存的值。

默認情況下啟用此選項,我建議您保持這種狀態。

自動縮進

由於 VBA 代碼可能會變得冗長且凌亂,因此使用縮進會增加代碼的可讀性。

編寫代碼時,可以使用 tab 鍵縮進。

此選項可確保當您完成縮進的行並按 Enter 後,下一行不會從頭開始,而是與前一行具有相同的縮進。

在 VB 編輯器代碼窗口中啟用縮進

在上面的示例中,在我編寫 Debug.Print 行並按 Enter 後,它將在它的正下方開始(具有相同的縮進級別)。

我發現這個選項很有用,關閉它意味著手動縮進我想要縮進的代碼塊中的每一行。

如果需要,您可以更改縮進值。我將其保持為默認值。

拖放文本編輯

啟用此選項後,它允許您選擇代碼塊並將其拖放。

它可以節省時間,因為您不必先剪切然後粘貼。您可以簡單地選擇並拖動它。

默認情況下啟用此選項,我建議您保持這種狀態。

默認為完整模塊視圖

啟用此選項後,您將能夠在一個可滾動列表中查看模塊中的所有過程。

如果禁用此選項,您一次只能看到一個模塊。您必須從代碼窗口右上角的下拉列表中選擇要查看的模塊。

默認情況下啟用此選項,我建議保持這種狀態。

當您有多個龐大的程序並且在這些程序中滾動需要時間時,或者當您有很多程序並且想要快速找到它而不是在滾動時浪費時間時,您可能想要禁用它的一個原因是。

程序分隔符

啟用此選項後,您將在兩個過程之間看到一條線(一種分隔線)。

我發現這很有用,因為它可以直觀地顯示一個過程何時結束而另一個過程何時開始。

VB 編輯器中的過程分隔符選項

它默認啟用,我建議保持這種狀態。

編輯器格式選項卡

使用編輯器格式選項卡中的選項,您可以自定義代碼在代碼窗口中的外觀。

就個人而言,我保留所有默認選項,因為我很好。如果需要,您可以根據自己的喜好進行調整。

要進行更改,您需要首先在代碼顏色框中選擇一個選項。選擇一個選項後,您可以修改它的前景色、背景色和指示器顏色。

字體類型和字體大小也可以在此選項卡中設置。建議使用固定寬度的字體,例如 Courier New,因為它使代碼更具可讀性。

請注意,所有代碼類型(即代碼顏色框中顯示的所有代碼類型)的字體類型和大小設置將保持不變。

下面是我選擇了斷點的圖像,我可以更改它的格式。

VB 編輯器中的編輯器格式選項

注意:啟用邊距指示器欄選項後,代碼左側會顯示一個小邊距欄。這很有幫助,因為它在執行代碼時顯示了有用的指標。在上面的例子中,當你設置斷點時,它會自動在邊距欄中的行的左側顯示一個紅點。或者,要設置斷點,您只需單擊要作為斷點的代碼行左側的邊距欄。

默認情況下,保證金指示器欄是啟用的,我建議保持這種狀態。

我的一位 VBA 課程學生髮現此自定義選項很有用,而且她是色盲。使用此處的選項,她能夠設置顏色和格式,使她可以輕鬆地使用 VBA。

常規選項卡

常規選項卡有許多選項,但您無需更改任何選項。

我建議您保持所有選項不變。

在此選項卡中要了解的一個重要選項是錯誤處理。

默認情況下,選擇“中斷未處理的錯誤”,我建議保持這種方式。

此選項意味著如果您的代碼遇到錯誤,並且您尚未在代碼中處理該錯誤,那麼它將中斷並停止。但是,如果您已經解決了錯誤(例如通過使用 On Error Resume Next 或 On Error Goto 選項),那麼它不會中斷(因為錯誤沒有未處理)。

對接選項卡

在此選項卡中,您可以指定要停靠的窗口。

停靠意味著您可以固定一個窗口(例如項目資源管理器或“屬性”窗口)的位置,使其不會浮動,您可以同時查看所有不同的窗口。

如果您不停靠,您將能夠在全屏模式下一次查看一個窗口,並且必須切換到另一個窗口。

我建議保留默認設置。

哦,您好 👋很高興認識你。

訂閱我們的電子報,定期發送很棒的科技內到您的郵

Post Comment