将文本转换为日期?

31

我有一列以文本形式存储,在格式上为yyyy-mm-dd的日期(A列),我想将其转换为日期格式,从而可以对其进行查找。

我已经阅读了这里的一些主题,并尝试了一些建议,但是我无法让它们起作用。其中一个建议是使用:

Columns("A").Select
Selection.NumberFormat = "date"

这改变了单元格的格式为日期,但实际上并没有改变值的格式,它仍然被存储为文本。

我的理解是我需要使用CDate()函数将值的格式从文本更改为日期。我尝试过类似以下的操作:

Dim c As Range
For Each c In ActiveSheet.UsedRange.columns("A").Cells
    c.Value = CDate(c.Value)
Next c

我遇到了类型不匹配的错误。我想知道这是否是因为我试图将日期值保存回非日期格式的单元格,因此我尝试将其与上面的.NumberFormat = "date"组合在一起,但也没有起作用。

如果有任何建议,将不胜感激。


2
嗨 @user1300244,你找到值得采纳的答案了吗?回馈/评价答案总是很好的。 - sancho.s ReinstateMonicaCellio
类型不匹配错误通常意味着无效的日期,例如“1900-13-12”、“1900-02-29”、“10000-01-01”等。在“1899-12-30”之前的日期会导致一般性的“运行时错误 '1004':应用程序定义或对象定义错误”。 - Slai
11个回答

0

问题已经解决:

    Range(Cells(1, 1), Cells(100, 1)).Select

    For Each xCell In Selection

    xCell.Value = CDate(xCell.Value)

    Next xCell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接