【发布时间】:2016-08-12 02:08:37
【问题描述】:
我在 Excel 中有以下两个日期列:
A B
DD-MM-YYYY DD-MM-YYYY HH:MM
如果这两列的日值和月值不匹配,且B列的月份与A列的日匹配,B列的日与A列的月匹配,则我必须反转 B 列的日期和月份值。
例如,如果我有:
A B
04-10-2016 10-04-2016 22:10
我需要 VBA 把它变成:
A B
04-10-2016 04-10-2016 22:10
我会这样做:
For j=1 to Range("A1").End(xlDown).Row
If ExtractDate(Cells(j, 2)) <> Cells(j, 1) And ExtractMonth(Cells(j, 2)) = ExtractDay(Cells(j, 1) And ExtractDay(Cells(j, 2)) = ExtractMonth(Cells(j, 1) Then
InvertDayAndMonth(Cells(j, 2)
End if
Next j
我知道这些功能不存在,有人可以帮我解决吗?
【问题讨论】:
-
我建议正确导入日期以开始。 DMY vs MDY 问题令人头疼。 27/04/2016 将作为文本出现,因为它无法解析,但 07/04/2016 将变为 04-Jul-2016,因为它会被错误解析。见Convert String to Date VBA