我在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
我知道那些功能不存在,有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
不需要进行检查。如果A列中的日期保证准确,那么B栏中所需的只是时间部分。
从B列中提取时间部分并将其添加到A列的日期部分。将结果放在您需要的位置。
答案 1 :(得分:0)
以下是我要解决的问题:
For j = 3 To Range("A1").End(xlDown).Row
If Day(Cells(j, 2).Value) = Month(Cells(j, 3).Value) And Month(Cells(j, 2).Value) = Day(Cells(j, 3).Value) Then
d = Cells(j, 3).Value
Cells(j, 3) = DateSerial(Year(d), Day(d), Month(d)) + TimeSerial(Hour(d), Minute(d), Second(d))
End If
Next j