如果我无法更改日期格式,该如何更改?

时间:2019-06-05 17:01:23

标签: excel vba date

enter image description here您好

这是我的专栏I的图片。我有一些长格式的日期(例如:2019年6月12日,星期三),还有一些短格式的日期(13/02/2017)。

我希望所有日期都被格式化为黄色单元格(长格式),但是我无法更改格式。当我尝试更改格式时,没有任何反应。

PS:如果有帮助,我必须在此工作表上做一些以前的工作,在该工作表中,我转到了数据->文本到列->并为此步骤选择了日期和格式dd / mm / yy。但似乎在执行了该步骤之后,我无法恢复为其他任何格式。

如果您对解决此问题有任何想法,请告诉我。

谢谢:)

2 个答案:

答案 0 :(得分:1)

选择抵抗格式更改的单元格并运行此简短的VBA宏:

Sub DateFixer()
    Dim cell As Range
    Dim v As String, d As Date

    For Each cell In Selection
        v = cell.Text
        If InStr(1, v, "/") <> 0 Then
            arr = Split(v, "/")
            d = DateSerial(arr(2), arr(1), arr(0))
            cell.Clear
            cell.Value = d
            cell.NumberFormat = "dddd,mmmm,dd,yyyy"
        End If
    Next cell
End Sub

之前:

enter image description here

及之后:

enter image description here

答案 1 :(得分:0)

@ Gary'sStudent答案的另一个选择是使用CDate。如Gary所述,请仅选择拒绝日期格式的单元格,如果选择格式正确的单元格,则会收到错误消息。

Dim cel As Range
    For Each cel In Selection
        cel.Value = CDate(cel.Value)
        cel.NumberFormat = "dddd,mmmm/dd/yyyy"
    Next cel