如何在Excel中搜索列值并用今天的日期替换

时间:2019-01-17 03:32:22

标签: excel vba excel-formula

我有一个excel文件,其列名是“ Pickup Time”,具有不同的日期和时间(可以是字符串或日期格式)

13/Jan/2019 10:00:00 PM
17/Jan/2019 06:01:00 AM
16/Jan/2019 08:00:00 PM
17/Jan/2019 04:01:00 AM
15/Jan/2019 06:00:00 AM
16/Jan/2019 02:01:00 PM
16/Jan/2019 09:00:00 PM
17/Jan/2019 05:01:00 AM
16/Jan/2019 04:00:00 PM
17/Jan/2019 12:01:00 AM
16/Jan/2019 05:00:00 PM
17/Jan/2019 01:01:00 AM
16/Jan/2019 07:30:00 PM
14/Jan/2019 03:31:00 AM
16/Jan/2019 08:20:00 PM
17/Jan/2019 04:21:00 AM
11/Jan/2019 10:00:00 PM

现在我只想用今天的日期替换该列中的日期,并保留时间,我该怎么做?预期的结果将如下所示:

17/Jan/2019 10:00:00 PM
17/Jan/2019 06:01:00 AM
17/Jan/2019 08:00:00 PM
17/Jan/2019 04:01:00 AM
17/Jan/2019 06:00:00 AM
17/Jan/2019 02:01:00 PM
17/Jan/2019 09:00:00 PM
17/Jan/2019 05:01:00 AM
17/Jan/2019 04:00:00 PM
17/Jan/2019 12:01:00 AM
17/Jan/2019 05:00:00 PM
17/Jan/2019 01:01:00 AM
17/Jan/2019 07:30:00 PM
17/Jan/2019 03:31:00 AM
17/Jan/2019 08:20:00 PM
17/Jan/2019 04:21:00 AM
17/Jan/2019 10:00:00 PM

已调查过lookup和vlookup,但似乎无法达到此目的。 非常感谢你!

2 个答案:

答案 0 :(得分:2)

=TODAY() + TIME(HOUR(A1),MINUTE(A1),SECOND(A1))

答案 1 :(得分:1)

这似乎有效:

Option Explicit

Public Sub changeDates()

    Dim cel As Range
    Dim rng As Range
    Dim cellTime As Variant

    Set rng = Sheet1.Range("A1:A" & Sheet1.Range("A1").End(xlDown).Row)

    For Each cel In rng.Cells

        cellTime = Format(TimeValue(cel), "hh:mm")
        cel.Value = Format(Date, "d/mmm/yyyy") + " " + cellTime

    Next cel

End Sub