Принудительно ввести короткую дату в британский формат DD-MM-YYYY - PullRequest
0 голосов
/ 14 октября 2018

У меня есть код для преобразования серийного номера в Великобританию. Отформатированные короткие даты.

Я звоню в модуль с помощью программы на C # и получаю дату в американском формате.

Application.ScreenUpdating = False

Dim x As Workbook
Set x = ActiveWorkbook

Dim WB As Workbook
Workbooks.Open "\\Csdatg04\psproject\Robot\Project Preload\Transactions\Robot WIP\Transactions.csv"
Set WB = ActiveWorkbook
WB.Worksheets(1).Range("J:J").EntireColumn.NumberFormat = "DD/MM/YYYY"
Application.DisplayAlerts = False
x.Save
WB.Save
WB.Close  

Как я могу принудительно преобразовать формат в даты Великобритании или, в качестве альтернативы, проверить, что даты отформатированы в формате Великобритании и, если нет, преобразовать результат из Америки в Великобританию?

1 Ответ

0 голосов
/ 14 октября 2018

Вот один из способов справиться с фиксированными датами (в ColA здесь)

Sub ImportAndFixDates()

    Dim wb As Excel.Workbook, c As Range, v, arr

    Set wb = Workbooks.Open("C:\Users\UserHere\Desktop\tmp.csv")

    With wb.Sheets(1)
        For Each c In .Range(.Range("A2"), .Cells(.Rows.Count, 1).End(xlUp)).Cells
            v = c.Text
            If v Like "#*/#*/#*" Then Then
                c.NumberFormat = "d/m/yyyy"
                arr = Split(v, "/")
                c.Value = Join(Array(arr(1), arr(0), arr(2)), "/")
            End If
        Next c
    End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...