簡體   English   中英

日期比較問題VBA

[英]Date Comparison Issue VBA

我正在嘗試在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

根據我的輸出,“首次讀取日期”永遠不會大於我要提取的值,在所有情況下都是如此。 我在此處包括了我正在運行的腳本中的debug.print示例,以顯示日期格式。 另外,我想確認從中提取的值確實是datevaluse,因為當我通過IsDate()函數運行它們時,它返回True。 在此處輸入圖片說明

如果我的日期格式與我調用的值交換年份和日期,則是另一個問題。 有誰知道如何解決這個問題。 當我使用格式函數時,它將返回日期為。 在此處輸入圖片說明

嘗試改用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")

假設包含日期的單元格為文本格式,請嘗試將比較值包裝在cDate中:

If FirstDateRead > Cdate(ws.Cells(i, 1).Value) Then
    ws.Cells(i, 3).Value = 121325
End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM