猿问

Excel VBA - 将文本转换为日期?

Excel VBA - 将文本转换为日期?

我有一列日期(A列)以yyyy-mm-dd格式存储为文本,我正在尝试将其转换为日期,最终我可以对它们进行查找。

我在这里阅读了一些主题并尝试了一些建议,但我无法得到任何工作。一个人正在使用:

Columns("A").SelectSelection.NumberFormat = "date"

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

我的理解是我需要使用CDate()来将值的格式从文本更改为日期。我尝试过这样的事情:

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

这给了我一个类型不匹配的错误。我想知道这是不是因为我试图将日期值保存回非日期格式化的单元格中,所以我尝试将它与上面的.NumberFormat =“date”结合起来,这也不起作用。

任何建议,将不胜感激。


呼唤远方
浏览 5513回答 3
3回答

墨色风雨

除了其他选项,我确认使用c.Value = CDate(c.Value)工作(仅使用Excel 2010测试您的案例描述)。至于你得到类型不匹配错误的原因,你可以检查(例如)这个。这可能是一个区域问题。
随时随地看视频慕课网APP
我要回答