我已经写了一个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()
。
欢呼。