将字符串日期与Excel 2016中的实际日期进行比较

时间:2018-05-24 12:07:56

标签: excel vba excel-vba

我在文本格式的单元格A1中有一个日期 - 5月18日

使用VBA,是否有可能将此值与单元格A2 - 01/05/2018(英国日期格式)中的值进行积极比较?

我尝试过使用CDate函数,但它没有返回正确的值。例如,如果A1中的值是11月24日,则CDate将重新发布24/11/2018。

所以,我想做的是: - 如果A1 = 5月18日 AND A2 = 01/05/2018 那么真的

3 个答案:

答案 0 :(得分:3)

您可以使用DATEVALUE

=DATEVALUE("1 " & $A$1)=$A$2  

如果单元格A1中的第1个月与单元格A2中的日期相同,则返回TRUE。

答案 1 :(得分:1)

您可以使用Excel公式:

=TEXT("18 May","dd-mm-yyyy")

或者在VBA中:

Dim Dt As Date
Dt = CDate(Range("A1"))
Dim Compare As Boolean
Compare = Dt = Range("A2")

答案 2 :(得分:0)

使用VBA,请考虑:

Sub DateCompaison()
    Dim s1 As String, s2 As String, d2 As Date
    s1 = [A1].Text
    s2 = [A2].Text

    arry1 = Split(s1, " ")
    arry2 = Split(s2, "/")

    month1 = arry1(0)
    year1 = "20" & arry1(1)

    d2 = DateSerial(CInt(arry2(2)), CInt(arry2(1)), CInt(arry2(0)))
    month2 = Format(d2, "mmmm")
    year2 = CStr(Year(d2))

    If month1 = month2 And year1 = year2 Then
        MsgBox "the same"
    Else
        MsgBox "not the same"
    End If
End Sub

enter image description here