Копирование британских дат в американский формат - PullRequest
0 голосов
/ 31 мая 2018

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

Set data = csvFile.Sheets(sheetname).Range("$A$1:$F$" & lastRow)
newPlan.Sheets(client & "_CSV").Range("$A$1:$F$" & lastRow).Value = data.Value

Даты представлены в формате ДД / ММ / ГГ, и при вставке в новый файл онипредоставляются в формате ММ / ДД / ГГГГ, но только если дата может существовать.

Например, 30/05/18 будет вставлено так же, как нет 30-го месяца, но будет добавлено 01/05/18с 05/01/2018.

Я не против, в каком формате копируются даты, если они согласованы.Я могу преобразовать их в правильный формат позже, если они в формате ММ / ДД / ГГГГ.

Я пытался установить формат чисел перед копированием из файла CSV, но это не помогает:

csvFile.Sheets(sheetname).Range("$D$1:$D$" & lastRow).NumberFormat = "dd/mm/yyyy"

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Вам нужно выбрать ячейку и сделать ее равной «Формат (ячейка, стиль данных)».

Например, где Row и Col - любое местоположение на листе:

sheet.Cells(Row, Col) = Format(sheet.Cells(Row, Col), "dd/mm/yyyy")
0 голосов
/ 31 мая 2018

Попробуйте очистить весь формат даты в вашем Range("$D$1:$D$" & lastRow) и примените метод NumberFormat:

csvFile.Sheets(sheetname).Range("$D$1:$D$" & lastRow).ClearFormats
csvFile.Sheets(sheetname).Range("$D$1:$D$" & lastRow).NumberFormat = "dd/mm/yyyy"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...