比較 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。
逐列寫入用 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。
「請檢查這段 VBA 哪些動作應使用 Cells、哪些應使用 Range,並用來源 8 筆 Net Pay 合計 426,110 做結果檢核。」
問題:新增第 9 位員工到第 11 列,但程式只格式化 A3:P10,會怎樣?
精簡解答: 計算若迴圈有涵蓋第 11 列仍可能寫入,但固定格式區只到第 10 列,新資料可能沒有相同格式;應改用動態範圍。