如何在代码vba中使用函数DATEVALUE

时间:2014-11-28 12:47:15

标签: excel vba excel-vba

如何在VBA代码中使用函数DATEVALUE,以便将单元格从文本转换为Date

实施例。我有E1= "29/10/2014"

EXCEL将其识别为文字。如果我双击单元格,它会正确地反转它。

我想运行一个宏并将所有这些值转换为Date。我必须说我有一张excel表Range A1:BJ10223,日期列是E,H,S,V,AB,AF,AJ,AL,AO,AS,AY,BE,BH。并非所有日期都反映为文本值。有些没问题。

2 个答案:

答案 0 :(得分:1)

我知道将伪文本日期转换为实际日期值的最便捷方法是通过数据►数据工具►文本到列的命令,该命令可以在VBA中循环。

Sub TXT2DMY()
    Dim v As Long, vCOLs As Variant
    vCOLs = Array("E", "H", "S", "V", "AB", "AF", "AJ", "AL", "AO", "AS", "AY", "BE", "BH")
    With ActiveSheet
        For v = LBound(vCOLs) To UBound(vCOLs)
            If CBool(Application.CountA(.Columns(vCOLs(v)))) Then _
                .Columns(vCOLs(v)).TextToColumns Destination:=.Columns(vCOLs(v)), _
                  DataType:=xlFixedWidth, FieldInfo:=Array(0, 4)
        Next v
    End With
End Sub

对于较小的工作表,这种差异可能并不明显,但是那些包含许多列的超过500行数据肯定会更快。

答案 1 :(得分:0)

VBA中的等效函数是CDate,它将其参数(正式为Variant)转换为Date类型。