一、案例定位

比較 Cells(row,column) 與 Range,並以來源完成表的薪酬欄位作為批次寫回結果。

二、學習目標

理解 Cells 適合逐列迴圈、Range 適合固定區塊;能檢查寫回欄位是否與來源結果一致。

三、案例情境

程式逐列讀取 Base Salary、Sales、Input Bonus Rate,將 Bonus_Amount、Tax_Amount、Net_Pay、Training_OK、Performance_Message 寫入完成表。

四、開始資料

來源完成表 A:P 共 16 欄,員工資料列為 3:10;來源示例另使用 Range("A3:P11")、Columns("N:N").AutoFit、Rows("3:3").Font.Bold=True。

五、Excel 分析方法

逐列寫入用 ws.Cells(r, col).Value = ...;整區格式用 Range。來源教學明確指出 Cells 適合迴圈、Range 適合固定範圍。

六、計算結果

8 人 Net Pay:56,560;48,990;57,280;36,120;82,560;40,840;69,440;34,320。合計 426,110。

七、結果分析與管理解讀

逐列 Cells 寫入可隨迴圈處理不同員工;固定 Range 若資料列增加,可能漏掉新列,需搭配動態 lastRow。

八、AI Prompt

「請檢查這段 VBA 哪些動作應使用 Cells、哪些應使用 Range,並用來源 8 筆 Net Pay 合計 426,110 做結果檢核。」

九、思考/What-if

問題:新增第 9 位員工到第 11 列,但程式只格式化 A3:P10,會怎樣?

精簡解答: 計算若迴圈有涵蓋第 11 列仍可能寫入,但固定格式區只到第 10 列,新資料可能沒有相同格式;應改用動態範圍。

十、資料說明