我想在vba脚本中比较日期。我认为主要问题是我的格式,但我不知道如何解决它。
Sub Rem9()
Dim i As Long
Dim lr As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
wsName = ws.Name
lr = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
FirstDateRead = CDate("1, 1,2018") 'Initialize the first Day of the year as the last day
For i = 1 To lr
Debug.Print FirstDateRead
Debug.Print ws.Cells(i, 1).Value
If FirstDateRead > ws.Cells(i, 1).Value Then
ws.Cells(i, 3).Value = 121325
End If
Next i
End Sub
根据我的输出,First Date Read永远不会超过我所拉的值,这适用于所有情况。我在这里包含了我运行的脚本中的debug.print示例,以显示日期格式。另外我想确认我绘制的值确实是datevaluse,因为当我通过IsDate()函数运行它时它返回True。
答案 0 :(得分:0)
请尝试使用DateDiff
功能:
Sub dateDifference()
Dim d1 As Date, d2 As Date
d1 = CDate("1, 2,2018")
d2 = Range("A1").Value ' insert a date in A1 to test
Debug.Print DateDiff("d", d1, d2) ' first parameter set to days
End Sub
编辑#1
使用Format
比较苹果和苹果,可以这么说:
d2 = Format(Range("A1").Value, "dd/mm/yyyy")
答案 1 :(得分:0)
假设包含日期的单元格采用文本格式,请尝试将比较值包装在cDate中:
[]