Excel VBA - 将单元格中的日期与当前日期进行比较

时间:2013-06-18 08:25:47

标签: excel vba date compare

(Excel 2010 VBA) 我有一个单元格(A1),其中包含格式为mmm-yy(“自定义”类别)的日期。 敌人的例子,如果我进入1/6/13,则单元显示6月13日。没关系。 在我的VB宏中,我需要检查这个日期是月份是当月还是当年是否是当年。我不关心这一天。

3 个答案:

答案 0 :(得分:5)

这对您有帮助吗?

Public Sub test()
    d = Sheet1.Range("A1")
    n = Now()
    If Year(d) = Year(n) And Month(d) = Month(n) Then
        MsgBox "It works"
    End If
End Sub

答案 1 :(得分:2)

感谢Dave和MiVoth,我做了:

Dim xdate As Date  
xdate = Worksheets("sheet1").Range("A1")  
   If Month(Date) = Month(xdate) And Year(Date) = Year(xdate) Then  
      MsgBox "OK"  
   Else  
      MsgBox "not OK"  
   End If  

这就完成了工作!
非常感谢大家,
加迪

答案 2 :(得分:1)

这个怎么样:

Function MonthYear() As Boolean
MonthYear = False
If Not IsDate(Cells(1, 1)) Then Exit Function
If Month(Date) = Month(Cells(1, 1)) And Year(Date) = Year(Cells(1, 1)) Then
    MonthYear = True
End If
End Function

如果月份和年份与当前日期相同,则该函数返回true。如果不是,则返回false。