利用 AddNetSalesFormula 巨集,將 Qty × Unit Price × (1-Discount) 套用到全部 10 筆訂單的 Net Sales。
每新增訂單都需要計算 Net Sales。若逐列手動輸入公式容易遺漏,因此將第一列公式寫入 I5,再透過 AutoFill 填滿 I5:I14。
| Order ID | Qty | Unit Price | Discount | Net Sales |
|---|---|---|---|---|
| SO-1001 | 3 | 28000 | 5% | 79800 |
| SO-1002 | 8 | 5500 | 3% | 42680 |
| SO-1003 | 15 | 850 | 0% | 12750 |
| SO-1004 | 2 | 28000 | 8% | 51520 |
| SO-1005 | 25 | 600 | 0% | 15000 |
| SO-1006 | 4 | 7200 | 5% | 27360 |
| SO-1007 | 6 | 5500 | 2% | 32340 |
| SO-1008 | 12 | 850 | 0% | 10200 |
| SO-1009 | 3 | 7200 | 4% | 20736 |
| SO-1010 | 30 | 600 | 0% | 18000 |
來源 VBA:
Sub AddNetSalesFormula()
Range("I5").Formula = "=F5*G5*(1-H5)"
Range("I5").AutoFill Destination:=Range("I5:I14")
End Sub
第一列先建立公式,再向下填滿;列號會隨 AutoFill 自動調整。
來源完成案例 10 筆 Net Sales 如表所示。合計為 310,386。
此巨集的價值在於把計算規則固定化。只要 Qty、Unit Price、Discount 正確,Net Sales 就能一致計算。和手動逐列輸入相比,AutoFill 更能減少公式不一致。
請檢查 =Qty × Unit Price × (1-Discount) 是否正確套用到 10 筆訂單,列出每筆 Net Sales,並說明 VBA AutoFill 如何利用相對參照讓公式逐列更新。