Проблема преобразования dd.mm.yyyy в британский формат даты с использованием VBA - PullRequest
0 голосов
/ 19 марта 2019

У меня есть даты в следующем формате: -

01.01.2019
01.02.2019
01.03.2019
14.03.2019

, и я хотел бы, чтобы они были в британском формате даты дд / мм / гггг, с использованием преобразования VBA.

Я попыталсяиспользуйте REPLACE, меняя "."в "/", но это выводит даты как: -

01/01/2019
02/01/2019
03/01/2019
14/03/2019

Есть ли способ преодолеть это?

Ответы [ 2 ]

4 голосов
/ 19 марта 2019

В приведенном ниже столбце цикла кода A & преобразовать дату в столбце B. Попробуйте:

Option Explicit

Sub test()

    Dim Year As String, Month As String, Day As String, WholeString As String
    Dim i As Long, Lastrow As Long

    With ThisWorkbook.Worksheets("Sheet1")

        Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row

        For i = 1 To Lastrow

            WholeString = .Range("A" & i).Value
            Year = Right(WholeString, 4)
            Month = Mid(WholeString, 4, 2)
            Day = Left(WholeString, 2)

            With .Range("B" & i)
                .Value = CDate(Day & "/" & Month & "/" & Year)
                .NumberFormat = "dd/mm/yyyy"
            End With

        Next i

    End With

End Sub
1 голос
/ 19 марта 2019

Что это делает для вас? Мне любопытно, если он вернет dd/mm/yyyy для вас:

With ActiveSheet.UsedRange.Columns("A").Cells
    .TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlDMYFormat)
    .NumberFormat = "dd/mm/yyyy"
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...