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

 小玲的夏天_905_735_602 发布于 2023-02-12 20:53

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

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

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"结合起来,这也没有用.

任何建议,将不胜感激.

4 个回答
  • 除了其他选项,我确认使用

    c.Value = CDate(c.Value)
    

    工作(仅使用Excel 2010测试您的案例描述).至于你得到类型不匹配错误的原因,你可以检查(例如)这个.

    这可能是一个区域问题.

    2023-02-12 20:54 回答
  • 您可以使用DateValue将字符串转换为此实例中的日期

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

    它可以将yyyy-mm-dd格式字符串直接转换为本机Excel日期值.

    2023-02-12 20:54 回答
  • 您可以使用工作表的数据►文本到列命令的VBA等效快速将类似日期的文本列转换为实际日期.

    With ActiveSheet.UsedRange.Columns("A").Cells
        .TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlYMDFormat)
        .NumberFormat = "yyyy-mm-dd"   'change to any date-based number format you prefer the cells to display
    End With
    

    批量操作通常比循环遍历单元格快得多,而VBA的Range.TextToColumns方法非常快.它还允许您自由设置MDY与DMY或YMD转换掩码,这些掩码会困扰许多文本导入,其中日期格式与系统的区域设置不匹配.有关可用日期格式的完整列表,请参阅TextFileColumnDataTypes属性.

    警告:导入文本时要小心,某些日期尚未转换.具有模糊月和日整数的基于文本的日期可能已被错误地转换; 例如2015年11月7日可能被解释为2015年11月7日或2015年7月11日,具体取决于系统区域设置.在这种情况下,放弃导入并将文本带回数据►获取外部数据►从文本中,并在文本导入向导中指定正确的日期转换掩码.在VBA中,使用Workbooks.OpenText方法并指定xlColumnDataType.

    2023-02-12 20:54 回答
  • 也许:

    Sub dateCNV()
        Dim N As Long, r As Range, s As String
        N = Cells(Rows.Count, "A").End(xlUp).Row
        For i = 1 To N
            Set r = Cells(i, "A")
            s = r.Text
            r.Clear
            r.Value = DateSerial(Left(s, 4), Mid(s, 6, 2), Right(s, 2))
        Next i
    End Sub
    

    这假设列A包含文本值,如2013-12-25,没有标题单元格.

    2023-02-12 20:55 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有