DateDiff("m", "06/14/1982", "09,01,1982") = 3
A1 = 06/14/1982
A2 = 09/01/1982
=DATEDIF(A1, A2, "m") = 2
如果我需要DateDiff
呢,我怎么做到这本轮下跌像DATEDIF
?让VBA DATEDIF的行为,并四舍五入Excel等DATEDIFF
DateDiff("m", "06/14/1982", "09,01,1982") = 3
A1 = 06/14/1982
A2 = 09/01/1982
=DATEDIF(A1, A2, "m") = 2
如果我需要DateDiff
呢,我怎么做到这本轮下跌像DATEDIF
?让VBA DATEDIF的行为,并四舍五入Excel等DATEDIFF
您可以使用VBA中的Evaluate
函数。但是,以这种方式处理日期时,您需要确保公式所看到的值是与日期对应的数字,而不是VBA日期数据类型。如果日期存储在工作表单元格,你会做这样的事情:
Evaluate("DATEDIF(" & [a1].Value2 & "," & [a2].Value2 & ", ""m"")")
如果日期被存储在VBA变量日期,则:
Evaluate("DATEDIF(" & CDbl(DT1) & "," & CDbl(DT2) & ", ""m"")")
我不知道评估吗?完美的作品,谢谢。 –
= Application.WorksheetFunction.RoundDown(DateDiff("d", a1, a2)/30, 0)
随着'A2:= 9/1/1990','DATEDIF►98','DateDiff►99'和你的函数►'100' –
你试过'回合()' ?或'RoundDown()'?此外,你的格式为代码只是工作表公式?你需要VBA? – BruceWayne
@BruceWayne你会回合什么? 'DateDiff'返回'Long'(可能是'Variant/Long') –