首頁學習資源Excel VBA 效率提升Excel 錄製巨集教學:分段錄製 SUM、AutoFill 並讀懂 VBA 程式碼
回到 Excel VBA 效率提升Excel VBA 效率提升

Excel 錄製巨集教學:分段錄製 SUM、AutoFill 並讀懂 VBA 程式碼

從 SUM 公式、填滿控制點到條件式格式設定,學會分段錄製巨集,並讀懂 Range、FormulaR1C1、AutoFill 與 Select 的基本作用。

Excel 錄製巨集教學:分段錄製 SUM、AutoFill 並讀懂 VBA 程式碼

重點摘要

- 先把公式、填滿、範圍選取及格式設定分段錄製,較容易測試與修改。 - 巨集名稱不能以數字開頭,名稱內不使用空格,可改用底線。 - FormulaR1C1 以目前儲存格為基準描述相對位置,適合填滿公式。 - 錄製器常產生固定範圍與多餘的 Select,應視為可修改的初稿。 Excel 巨集錄製器能把操作轉成 VBA,是新手理解程式碼最直接的入口。本文帶你分段錄製 SUM 公式、AutoFill、連續範圍、條件式格式與框線,再從 Visual Basic 編輯器辨認每一段程式的作用。

分段錄製巨集有哪些好處?

分段錄製能把複雜工作切成多個可驗證單元。公式錄錯時只需重錄公式,不必重做所有格式;日後組合程序時,也能選擇需要的程式碼,而不是整段照搬。 建議分成: 1. 加總公式。 2. 快速填滿公式。 3. A 欄連續資料範圍選取。 4. 奇數列格式。 5. 偶數列格式。 6. 標題列格式。 7. 所有框線。

如何錄製第一個 SUM 公式巨集?

前置條件

① 🎯 先選取 H2

錄製開始前先移到 H2,避免把跨工作表或長距離移動錄進去。你的目標是只記錄「在 H2 輸入公式」。

② ⏺️ 啟動錄製巨集

到「檢視」→「巨集」→「錄製巨集」,或使用「開發人員」→「錄製巨集」。名稱可輸入 加總公式,第一個字不可為數字,名稱中不要使用空格。

③ 🧮 輸入公式但不要按 Enter

在 H2 輸入 =SUM(E2:G2),按公式列的勾選按鈕完成輸入,使 H2 保持作用中。接著立即按「停止錄製」。

④ 🔍 開啟 Visual Basic 編輯器

選取「巨集」,點選剛才的巨集後按「編輯」。錄製結果可能類似: ``vba Sub 加總公式() ActiveCell.FormulaR1C1 = "=SUM(RC[-3]:RC[-1])" End Sub RC[-3] 表示與作用中儲存格同一列、向左三欄;若作用中儲存格是 H2,就是 E2。RC[-1]` 則是 G2。

如何錄製 AutoFill 向下填滿?

① 📌 保持 H2 為作用中儲存格

將滑鼠移到 H2 右下角的填滿控制點,按兩下左鍵,讓公式填到目前資料最後一列。

② ⏹️ 完成後停止錄製

錄製器產生的程式碼可能類似: ``vba Selection.AutoFill Destination:=Range("H2:H1443") AutoFill 是 Range 物件的方法;Destination 是目標範圍。此處的 H1443` 只反映錄製當時的資料,未來資料筆數改變時不會自動調整。

如何錄製連續資料範圍?

① 📍 選取 A1 後開始錄製

開始錄製名為 A欄資料選取 的巨集。

② ⌨️ 按 Ctrl+Shift+向下鍵

這組快速鍵會從 A1 選到連續資料區域的最後一格。完成後停止錄製,可能得到: ``vba Range(Selection, Selection.End(xlDown)).Select End(xlDown)` 類似在工作表按 Ctrl+向下鍵,但中途若有空白儲存格,可能提前停止。因此正式程式通常會改用由工作表底部向上尋找最後一列的方法。

如何錄製格式設定?

① 🟨 錄製奇數列規則

先選取資料範圍,再錄製「條件式格式設定」→「新增規則」→「使用公式」,輸入 =MOD(ROW(),2)=1 並設定淺黃色。

② 🟧 錄製偶數列規則

在相同範圍輸入 =MOD(ROW(),2)=0,設定淺橘色。奇數列與偶數列的錄製順序通常可互換。

③ 🟦 最後錄製標題列

輸入 =ROW()=1 並設定淺藍色。標題列也屬於奇數列,因此標題規則建議放在交錯列規則之後,再檢查優先順序。

④ ▦ 錄製所有框線

在資料範圍仍被選取時,錄製「常用」→「框線」→「所有框線」。完成後停止錄製。

如何讀懂錄製器產生的 VBA?

| 程式片段 | 類型 | 作用 | |---|---|---| | Range("H2") | 物件 | 代表 H2 儲存格 | | .Select | 方法 | 選取指定物件 | | ActiveCell | 物件 | 目前作用中的儲存格 | | .FormulaR1C1 | 屬性 | 以 R1C1 樣式設定公式 | | .AutoFill | 方法 | 依來源模式填滿目標範圍 | | Destination:= | 具名引數 | 指定 AutoFill 的目標 | | Selection | 物件 | 當下被選取的儲存格範圍 | 錄製結果不是最終答案,而是可以觀察、測試和修改的程式碼草稿。先問「這個物件是誰」「它呼叫哪個方法或設定哪個屬性」,會比背整行程式容易。

示範情境:資料由 1,443 列增加到 2,000 列

錄製時 AutoFill 的終點是 H1443,下個月多了資料,巨集仍只填到 H1443。這個結果證明錄製器只知道當下操作。後續要先取得最後一列,再把目標改為 Range("H2:H" & lastRow)。這是虛擬示範,不代表真實資料筆數。

給 AI 的巨集解讀提示詞

你是一位 Excel VBA 新手教練。以下程式碼來自錄製巨集。請用繁體中文(台灣)逐行說明:
- 每行的物件、屬性、方法與引數;
- 哪些 Range 或列號被固定寫死;
- 哪些 Select、Selection、ActiveCell 可以改為明確物件;
- 修改前後都要提供完整 VBA;
- 不得改變原本工作結果;
- 範例工作表名稱與資料一律使用虛擬值。

[在此貼上已移除公司名稱、路徑及個資的 VBA]

常見錯誤與排除方式

常見問題

Formula 與 FormulaR1C1 有什麼差別?

Formula 常使用 A1 樣式,例如 =SUM(E2:G2)FormulaR1C1 使用列、欄相對位置,適合描述「同列向左三欄到向左一欄」的公式。

錄製巨集一定會產生很多 Select 嗎?

常見,但不代表必須保留。錄製器依操作記錄選取狀態;修改時通常可用 ws.Range(...) 直接操作,降低對畫面位置的依賴。

Excel 網頁版可以錄製或執行 VBA 嗎?

VBA 主要使用於桌面版 Excel。若工作需要在瀏覽器或雲端執行,應另外評估 Office Scripts 與 Power Automate。

延伸閱讀

參考來源

- Microsoft 支援(繁體中文):快速入門—建立巨集 - Microsoft 支援(繁體中文):使用巨集錄製器自動化工作 - Microsoft Learn(繁體中文):Excel Range 物件 - Microsoft 支援(繁體中文):在 Excel 中執行巨集 --- 作者:施文華 企業自動化顧問/講師,專注於 Excel、VBA、Power BI、Power Automate 與企業流程自動化。本文依課程逐字稿、實務操作與 Microsoft 官方文件整理。 作者介紹:關於施文華老師 最後更新:2026-09-08 適用版本/測試環境:Windows 版 Excel 2016 與 Microsoft 365。

施文華|企業自動化顧問/講師

專注 Excel、VBA、Power BI、Power Automate 與企業流程自動化,從真實工作問題出發,協助學員建立可持續使用的能力。