比较VBA中的日期部分

时间:2015-06-04 19:22:20

标签: excel-vba vba excel

我希望比较两个日期并做一些事情,如果一个日期的月份或年份比另一个日期更长。

我不确定如何缩短日期,所以我想我将两个日期都变成一个字符串并比较每个字符串的某些字符,但我找不到成功。 还有更好的方法吗?

代码:

'Compare months

If Date1.chars(1,2) > Date.chars(1,2) Then

...

'Compare years

Else If Date1.chars(6,7,8,9) > Date.chars(6,7,8,9) Then

...

End If

2 个答案:

答案 0 :(得分:2)

Dates在Excel工作表中有基础数字表示,因此只需在包含>的单元格之间使用“Dates”运算符。例如:

A           B           C 
6/4/2015    6/3/2015    TRUE

其中,单元格A1B1包含要比较的日期,而单元格C1包含简单的工作表公式:=(A1>A2)如果TRUE中的日期返回A1 1}}大于B1

如果您只需比较某些Date部分(例如月,年,日),请使用以下工作表公式:

6/4/2015    5/4/2015    TRUE

其中,单元格C1包含工作表公式:=(=MONTH(A1)>MONTH(B1))

类似的技术可以在Excel VBA自定义函数中实现(如果需要)。希望这可能有所帮助。

答案 1 :(得分:2)

您正在寻找MonthYear功能。

If Month(Date1) > Month(date) then
    ...
ElseIf Year(Date1) > Year(date) then
    ...
End If