日和年逆转VBA

时间:2018-05-31 16:31:22

标签: excel vba excel-vba

我正在尝试比较我写的vba脚本中的日期但是我遇到了一个问题,即放入格式函数的日期将日期视为年份,将年份视为日期。你可以想象这个脚本的抛出显着,从而导致许多错误。有问题的日期值被格式化为日期,因为我通过IsDate函数运行它们并返回一个真值。

当我调用该值时,这些是在即时窗口中生成的值。enter image description here

当我使用Format(ws.Cells(i,1).Value,“dd-MM-yy”)转换格式时,我在即时窗口中收到以下数据。

enter image description here

以下是我在即时窗口中比较它们的脚本,以及我在这篇文章中使用的照片。

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

1 个答案:

答案 0 :(得分:1)

您可以修改日期格式

Function FixDateFormat(strDate As String) As String
    Dim datePartsArray
    datePartsArray = Split(strDate, "-")
    FixDateFormat = datePartsArray(1) & "-" & datePartsArray(0) & "-" & datePartsArray(2)
End Function