Дата изменяется только при двойном нажатии на ячейку - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь отформатировать дату, используя

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

Некоторые даты не меняются

, но когда я нажимаю дважды, даты получают формат, иногда это происходит со значениями тоже что происходит?

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

Вам не нужно l oop здесь , если вам нужно только обновить формат условно

  1. Объявить диапазон (dt)
  2. Преобразовать dt в значения (применяется только к строкам, представленным в виде чисел)
  3. Применить желаемый формат к dt (все ячейки одновременно, но не l oop)

Sub All_At_Once()

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

End Sub
0 голосов
/ 02 марта 2020

Пожалуйста, проверьте это по вашим данным.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...