使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 

如果我需要DateDiffDATEDIF一样向下滚动 ,我该怎么做?

您可以使用VBA中的Evaluatefunction。 但是,以这种方式处理date时,需要确保公式所看到的值是与date对应的数字,而不是VBAdate数据types。 如果date存储在工作表单元格中,则可以执行如下操作:

 Evaluate("DATEDIF(" & [a1].Value2 & "," & [a2].Value2 & ", ""m"")") 

如果date存储为VBAvariables中的date,则:

 Evaluate("DATEDIF(" & CDbl(DT1) & "," & CDbl(DT2) & ", ""m"")") 
  = Application.WorksheetFunction.RoundDown(DateDiff("d", a1, a2) / 30, 0)