如何在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。并非所有日期都反映为文本值。有些还可以。
伪文本日期转换为实际日期值的最方便方法是通过数据 ► 数据工具 ► 文本到列命令,该命令可以在 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 行的数据和这么多列肯定会更快。
VBA中的等效函数是CDate
,它将其参数(形式上是Variant
)转换为Date
类型。