我正在尝试开发一个'for loop'宏来计算相邻列中两个日期之间的持续时间。
我目前的代码:
Sub Enter_Formulas()
FinalRow = Cells(Rows.Count, 2).End(xlUp).Row 'Counts # of rows in the data set
For x = 5 To FinalRow
Cells(x, 10).Formula = "=I5-H5"
End Sub
这将准确地返回I5和I5之间的差异。 H5,但我希望公式向下流动。 (即下一行应计算I6 - H6然后计算I7-I8 ..依此类推等等)
非常感谢任何建议!!
答案 0 :(得分:0)
我建议不要使用循环,您可以一次性自动填充整个范围:
Sub Enter_Formulas()
FinalRow = Cells(Rows.Count, 2).End(xlUp).Row 'Counts # of rows in the data set
Range(Cells(5, 10).address, Cells(FinalRow, 10).address).Formula = "=I5-H5"
End Sub
但是,如果你必须使用循环,那么试试这个:
For x = 5 to FinalRow
Cells(x,10).Formula = "=" & Cells(x,9).Address & "-" & Cells(x,8).Address
Next x
通过连接依赖于x的单元格地址,它们每次也会增加一行。
答案 1 :(得分:0)
你也可以这样做,如果你必须使用循环(我通常不会),使用R1C1形式的寻址:
For X = 5 To FinalRow
Cells(X, 10).FormulaR1C1 = "=RC[-1]-RC[-2]"
Next X
如果您的工作表使用A1参考样式,则会正确翻译。