【问题标题】:Is there a way to convert a Long Date to short date in Excel?有没有办法在 Excel 中将长日期转换为短日期?
【发布时间】:2020-09-01 22:07:50
【问题描述】:

我有一个导出的文件,它以 General 格式为我提供了一个长日期列表。 例如:2020 年 8 月 28 日,星期五

我正在尝试将它们转换为短日期。我尝试使用 CDate 函数,但出现不匹配错误。我觉得这很奇怪,因为单元格具有确切的长日期形式。

我尝试运行大量代码。这是我最近尝试的一个。它将单元格格式更改为长日期。然后使用 Cdate 并得到一个不匹配的错误。

Sub formatdate()
'
' Macro1 Macro
'


    Range("J2").Select
    Selection.NumberFormat = "[$-F800]dddd, mmmm dd, yyyy"

    MsgBox (CDate(Range("J2")))
End Sub

任何帮助将不胜感激!

【问题讨论】:

  • 您的单元格包含文本或实际日期?
  • 嗨,有趣,也许这可能会引起您的兴趣stackoverflow.com/questions/29982652/…
  • selection.value = cdate(mid(selection,instr(selection,",")+1)) 然后按您的意愿格式化。
  • @TimWilliams 我的单元格包含“2020 年 9 月 2 日,星期三”作为通用格式。如果我切换格式,它仍然是“2020 年 9 月 2 日,星期三”,所以回答你的问题,包含文本。

标签: excel vba


【解决方案1】:

正如@scottcraner 所说:

Dim v
With Range("J2")
    v = .Value
    v = Mid(v, InStr(v, ",") + 1, 100)
    .Value = DateValue(v)
End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    相关资源
    最近更新 更多