有没有办法在Excel中将长日期转换为短日期?

有没有办法在Excel中将长日期转换为短日期?,excel,vba,Excel,Vba,我有一个导出文件,它以常规格式为我提供了一个长日期列表。 ex:2020年8月28日,星期五 我试图把它们转换成短日期。我尝试过使用CDate函数,但出现了不匹配错误。我觉得这很奇怪,因为这个单元格有确切的长日期形式 我试过运行大量代码。这是我最近试过的一个。它将单元格格式更改为长日期。然后使用Cdate并获取不匹配错误 子格式日期() ' '宏1宏 ' 范围(“J2”)。选择 Selection.NumberFormat=“[$-F800]dddd,mmmm dd,yyyy” MsgBox(C

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

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

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

子格式日期()
'
'宏1宏
'
范围(“J2”)。选择
Selection.NumberFormat=“[$-F800]dddd,mmmm dd,yyyy”
MsgBox(CDate(范围(“J2”))
端接头
任何帮助都将不胜感激

正如@scottcraner所说:

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

您的单元格包含文本或实际日期?您好,很有意思,这可能是您感兴趣的
selection.value=cdate(mid(selection,instr(selection,“,”)+1))
然后按您的要求格式化。@TimWilliams我的单元格包含“2020年9月2日星期三”作为常规格式。如果我改变格式,它仍然是“2020年9月2日,星期三”,所以回答你的问题,包含文本。