在单元格中单击两次时,日期仅更改格式

时间:2020-03-02 17:59:24

标签: excel vba

我正在尝试使用

格式化日期
   Dim dt As Range
For Each dt In Range("A1:A1000")
    dt.NumberFormat = "m/d/yyyy"
Next dt

某些日期不变

但是当我单击两次日期时,将收到格式, 有时它也会与值一起发生,这是怎么回事?

enter image description here

2 个答案:

答案 0 :(得分:0)

请针对您的数据进行测试。

Sub test()
   Dim dt As Range
    For Each dt In Range("A1:A1000")
        If Application.WorksheetFunction.IsText(dt) Then
            dt.Value = Val(dt.Value)
        End If
            dt.NumberFormat = "m/d/yyyy"
    Next dt
End Sub

答案 1 :(得分:0)

您不需要在此处循环除非,您只需要有条件地更新格式

  1. 声明范围(dt
  2. dt转换为值(仅适用于显示的字符串 作为数字)
  3. 将所需的格式应用于dt (所有单元一次,不循环)

Sub All_At_Once()

Dim dt As Range: Set dt = Range("A1:A1000")
dt.Value = dt.Value
dt.NumberFormat = "m/d/yyyy"

End Sub