在myexcel中,我想计算单元格中单个日期与第AS2列中的一系列日期之间的天数差异:AS400
此外,我希望它在单独的列中的天数差异。
我试图通过记录宏来理解代码并将其修改为两行代码。但我无法做到。任何人都可以简单地将下面的代码简化为简化程序。所以我可以使用一个大的没有。列中的数据非常容易,而不是为每个单元格写入数据。
Range("AS2").Select
ActiveCell.FormulaR1C1 = "=R[3]C[-42]-RC[-22]"
Range("AS3").Select
ActiveCell.FormulaR1C1 = "=R[2]C[-42]-RC[-22]"
Range("AS4").Select
ActiveCell.FormulaR1C1 = "=R[1]C[-42]-RC[-22]"
Range("AS5").Select
ActiveCell.FormulaR1C1 = "=RC[-42]-RC[-22]"
Range("AS6").Select
ActiveCell.FormulaR1C1 = "=R[-1]C[-42]-RC[-22]"
Range("AS7").Select
ActiveCell.FormulaR1C1 = "=R[-2]C[-42]-RC[-22]"
Range("AS8").Select
ActiveCell.FormulaR1C1 = "=R[-3]C[-42]-RC[-22]"
答案 0 :(得分:0)
查看DateDiff Function的文档:
例如:
Range("BA2").Value = DateDiff("d", Range("C5").Value, Range("AS2").Value)
...将在几天内将C5和AS2的差异返回到BA2。
但是你也可以在没有VBA的情况下做到这一点:
将以下公式放入BA2 =DAYS(C5,AS2)
以获得天数差异。
或者你可以用VBA将该公式写入单元格:
Range("BA2").Formula = "=DAYS(C5,AS2)"
用于在循环中编写多个公式:
Dim i As Long
For i = 2 to 5
Range("BA" & i).Formula = "=DAYS(C5,AS" & i &")"
Next i
甚至可以更好地编写第一个单元格并将其复制
Range("BA2").Formula = "=DAYS($C$5,AS2)" 'write first formula
Range("BA2").AutoFill Destination:=Range("BA2:BA5"), Type:=xlFillDefault 'copy it down until BA5
请注意,$C$5
是一个固定的单元格,但AS2
会在您复制时动态调整。