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') –