【发布时间】:2020-01-19 00:50:33
【问题描述】:
我正在寻找一个动态宏,它从 B2 开始减去 C2 开始的数字,然后将它们放在 D2 开始。 C2 以后的数字是固定的,尽管用户会在 B2 以后输入数字。 C 列(收费小时数)的长度会根据已导入的工作表而变化。代码如下:
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
表格看起来像这样(第一列是 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' 的原因是因为我有一个输入所有这些数据的宏,以及一个单独的宏来“重置”工作表(删除所有数据和公式)。
谢谢大家, 杰克。
【问题讨论】:
-
你的代码有什么问题?您的示例看起来不是很有帮助 - 为什么一切都为零?
-
显示的代码仅供参考。一旦有人将数据输入第一列,我遇到的问题是在第三列中显示前两列的减法结果。在用户输入数据之前,预算小时数将始终为零。方差列是我需要公式的地方(因此它是 0)。
-
如果您希望在用户输入数据时发生某些事情,您需要调查工作表事件,在这种情况下可能是更改事件。
标签: excel vba dynamic subtraction