Vlookup单元格包含日期格式,文本和常规格式的日期

时间:2018-07-16 12:24:38

标签: excel excel-vba date

我正在查找包含日期的单元格,其中一些采用日期格式,其他采用文本格式,而另一些采用常规格式。我正在尝试preCheckStep所示单元格的值。

到目前为止,如果单元格的格式为日期,则返回数字;如果单元格的格式为text,则正确返回值;如果单元格的值为date,则返回数字;如果我手动将其转换为日期格式,它以vlookup而不是mm/dd/yyyy的形式打印日期,因为它是我dd/mm/yyyy所用的工作表中的日期。是否有一个代码可以“ screeshot”值并将其vlookup完全按显示的代码(好像它是文本)进行编码。

这是我尝试过的事情。它可以运行,但仍然不能解决任何问题。

新代码

vlookup

EDIT

输入数据示例(我提供了两个快照,以查看输入日期的格式不同

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

这个简短的nacro将在 I:J 列中查找可以解释为日期的数据,并将其转换为格式为“ dd / mm / yyyy” :

Sub DateFixer()
    Dim ws3 As Worksheet, r As Range, d As Date
    Set ws3 = ActiveSheet

    For Each r In ws3.Range("I:J").Cells.SpecialCells(2)
        arr = Split(r.Text, "/")
        If UBound(arr) = 2 Then
            d = DateSerial(arr(2), arr(1), arr(0))
            r.Clear
            r.NumberFormat = "dd/mm/yyyy"
            r.Value = d
        End If
    Next r
End Sub