Я скачал набор данных временных рядов короновируса covid-19, и мне нужно преобразовать заголовки столбцов в файле .csv в британский формат даты. Затем я хочу установить заголовки столбцов в качестве оси даты на графике для построения графика распространения инфекции.
Набор данных начинается с 1/22/20, 1/23/20, а затем изменяется на 02/01 / 2020, 02/02/2020, затем меняется на 13.02.20, 14.02.20, а затем 03.01.2020, 03.02.2020. Это все M / D / Y.
Я написал макрос Excel VBA, который проверяет, является ли значение M 1 или 2 цифрами, и добавляет ноль, если 1 для согласованности. Поскольку преобразование текста в столбец по-прежнему не работало должным образом, я добавил поправку на год с 20 по 2020, чтобы обеспечить согласованный набор входных данных.
Код, который я использую:
Sub usDateToUkDate()
Dim r As Range
Dim cells As Integer
Dim cell As Range
Set r = Range("E1", Range("E1").End(xlToRight))
For Each cell In r
cell.Select
If Left(ActiveCell.Value, 1) <> 0 Then
cell.Value = "0" & cell.Value
End If
If Len(ActiveCell.Value) <> 10 Then
cell.Value = Replace(cell.Value, "20", "2020", 7)
End If
Selection.TextToColumns Destination:=ActiveCell(), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, OtherChar _
:="/", FieldInfo:=Array(0, 3), TrailingMinusNumbers:=True
ActiveCell.EntireColumn.AutoFit
Next cell
End Sub
Хотя я не до конца понимаю синтаксис TextToColumns при копировании записанного макроса, почему я получаю противоречивые результаты. Я изменил FieldInfo: = Array (1,3) на Array (0,3), так как я хотел начать с первого символа. Я получаю следующие результаты: Итоговый вывод
Набор данных: 1/22/20 Выход: 22 января 2020 г. Результат: правильный
Набор данных: 01.02.2020 Выход: 02 января 2020 г. Результат: неверный
Результаты повторяются в зависимости от формата ввода.
Что я делаю не так? Есть ли лучший способ конвертировать даты из формата США в Великобританию?