我正在尝试比较我写的vba脚本中的日期但是我遇到了一个问题,即放入格式函数的日期将日期视为年份,将年份视为日期。你可以想象这个脚本的抛出显着,从而导致许多错误。有问题的日期值被格式化为日期,因为我通过IsDate函数运行它们并返回一个真值。
当我使用Format(ws.Cells(i,1).Value,“dd-MM-yy”)转换格式时,我在即时窗口中收到以下数据。
以下是我在即时窗口中比较它们的脚本,以及我在这篇文章中使用的照片。
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 CStr(ws.Cells(i, 1).Value)
Debug.Print DateDiff("m", ws.Cells(i, 1).Value, FirstDateRead)
Next i
End Sub
答案 0 :(得分:1)
您可以修改日期格式
Function FixDateFormat(strDate As String) As String
Dim datePartsArray
datePartsArray = Split(strDate, "-")
FixDateFormat = datePartsArray(1) & "-" & datePartsArray(0) & "-" & datePartsArray(2)
End Function