重點摘要
- 先把公式、填滿、範圍選取及格式設定分段錄製,較容易測試與修改。
- 巨集名稱不能以數字開頭,名稱內不使用空格,可改用底線。
- FormulaR1C1 以目前儲存格為基準描述相對位置,適合填滿公式。
- 錄製器常產生固定範圍與多餘的 Select,應視為可修改的初稿。
Excel 巨集錄製器能把操作轉成 VBA,是新手理解程式碼最直接的入口。本文帶你分段錄製 SUM 公式、AutoFill、連續範圍、條件式格式與框線,再從 Visual Basic 編輯器辨認每一段程式的作用。
分段錄製巨集有哪些好處?
分段錄製能把複雜工作切成多個可驗證單元。公式錄錯時只需重錄公式,不必重做所有格式;日後組合程序時,也能選擇需要的程式碼,而不是整段照搬。 建議分成: 1. 加總公式。 2. 快速填滿公式。 3. A 欄連續資料範圍選取。 4. 奇數列格式。 5. 偶數列格式。 6. 標題列格式。 7. 所有框線。
如何錄製第一個 SUM 公式巨集?
前置條件
- 使用虛擬練習活頁簿,H2 是結果欄第一格。
- E2:G2 是要加總的三個數值欄。
- 巨集儲存在目前活頁簿。
- 尚未存檔時,先規劃最後使用
.xlsm格式。
① 🎯 先選取 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]常見錯誤與排除方式
- 錄錯後繼續操作:立即停止錄製,刪除該測試巨集後重錄。
- 巨集名稱無法接受:確認第一個字不是數字,且名稱沒有空格或特殊符號。
- 填滿只到舊資料終點:這是固定範圍造成的,下一步改用動態最後一列。
- 執行時作用在錯誤工作表:錄製結果依賴作用中物件,正式版應限定 Workbook 與 Worksheet。
常見問題
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。

