VBA 从固定数字中减去一个可变数字(动态)的宏

VBA macro to subtract one variable number (dynamic) from a fixed number

我正在寻找一个动态宏,该宏从 B2 开始减去 C2 中的数字并将它们放入 D2 中。 C2 以后的数字是固定的,尽管用户会把数字放在 B2 以后。 C 列(收费小时数)的长度根据导入的 sheet 而变化。代码如下:

Dim O As Long
O = Cells(Rows.Count, "C").End(xlUp).Row
Cells(O + 1, "C").Formula = "=SUM(C2:C" & O & ")"
Cells(O + 1, "C").Interior.Color = RGB(208, 247, 197)
Cells(O + 1, "C").Font.Bold = True

sheet 看起来像这样(第一列是 B,最后一列是 D):

Hours Budgeted | Hours Charged | Variance
       0       |     85        |  0
       0       |     31        |  0
       0       |     20        |  0
       0       |     100       |  0
       0       |     75        |  0

总而言之,当用户在预算小时数 (B) 列中输入一个值时,我希望它自动从收费小时数 (C) 列中减去并显示在差异 (D) 列中。 这不能只是 '=C2-B2' 的原因是因为我有一个宏输入所有这些数据,以及一个单独的宏 'Resets' sheet (删除所有数据和公式)。

谢谢大家, 杰克.

下面的代码应该可以解决问题,只需将其添加到您发布的代码之后即可。

For i = 2 To O
    Cells(i, "D").FormulaR1C1 = "=RC[-1]-RC[-2]"
Next i

FormulaR1C1 允许您插入相对于要将公式放入的单元格的单元格引用,因此 R[2]C[3] 将插入对单元格的引用向下三行向右三列.