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



我已经写了一个vba宏,它正在创建一个新的excel文件基于几个不同的文件。我无法更改源文件格式化数据的方式,我想编写一个简单的if语句(如果日期x是过去的日期y,请删除整个行(。问题在于日期具有不同的格式。我能够做到的是创建一个新列:

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

,然后从那并删除列。不过,这感觉不正确,我相信有更好的解决方案。我一直在尝试做

之类的事情
 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的方式格式化日期。由于某些原因,第二个或两个字段都与.numberformat =" mm/dd/yyyy"也行不通。

亲切的问候,Heaton124。

P.Phidot的建议之后,我将评论作为答案,以便将其标记,因此可以由他人达到。

所以,答案是:

尝试使用VBA函数CDate()

欢呼。

最新更新