Excel VBA:在VBA中最佳使用DateValue(或其他比较日期的方法)

Excel VBA: Optimal use of DateValue in VBA (or other method to compare dates)

我在Access中编写了VBA宏,该宏基于几个不同的文件创建了一个新的excel文件。 我无法更改源文件格式化数据的方式,我想编写一个简单的IF语句(如果日期X超过日期Y,则删除整行)。 问题在于日期的格式不同。 我能够做到的方式是创建一个新列:

1
=IF(DATEVALUE(A2)>DATEVALUE(H2),TRUE,FALSE)

然后从那开始,最后删除该列。 但这感觉并不正确,我相信有更好的解决方案。 我一直在尝试做类似的事情

1
2
3
 If ifDelete = vbYes And .Cells(Lrow, 19).Value Like"*timing*" And DateValue(.Cells(Lrow, 1).Value) > DateValue(.Cells(Lrow, 8).Value) Then
      .Cells(Lrow, 19).EntireRow.Delete
 End If

但这显然行不通。 在运行该IF语句之前,我也尝试过格式化日期列,但是仍然没有运气。 如果有帮助,则以MM / DD / YYYY和M / D / YYYY的格式格式化日期。 由于某些原因,在2号上使用.NumberFormat =" MM / DD / YYYY"或两个字段都无法使用。

亲切的问候,
Heaton124。


按照p.phidot的建议,我将我的评论作为答案,以便可以加以标记并因此被其他人获得。

因此,答案是:

尝试使用VBA功能CDate()

干杯。