2

Я сделал макрос для извлечения даты из текстового документа и вставил в Excel. У меня есть управление контентом выбора даты в слове. Моя локаль на моем компьютере установлена на итальянский ДД / ММ / ГГГГ, моя локаль слова выбора даты установлена на итальянский ДД / ММ / ГГГГ. на моем сборщике дат я вижу дату, например, 08.06.2017. Сейчас я использую:

Activeworkbook.Sheets("Sheet1").Range("A1") = objwdDoc.ContentControls(12).Range.Text

но я получаю 08.06.2017, я попробовал:

Activeworkbook.Sheets("Sheet1").Range("A1") = format(objwdDoc.ContentControls(12).Range.Text, "DD/MM/YYYY")

Но я получаю дату как 08.06.2017

если я использую:

Activeworkbook.Sheets("Sheet1").Range("A1") = format(objwdDoc.ContentControls(12).Range.Text, "MM/DD/YYYY")

Я на самом деле получаю правильное свидание

Я проверяю код VBA с помощью переменной, как:

date1 = format(objwdDoc.ContentControls(12).Range.Text, "MM/DD/YYYY")

    Activeworkbook.Sheets("Sheet1").Range("A1") = date1

и в отладке моя переменная date1 верна: 06.08.2017

Когда я проверяю в Excel A1 tho, я получаю 06/08/2017, и эта ячейка отформатирована как «короткая дата, дд / мм / гггг»)

Зачем?

1 ответ1

0

Есть два способа обойти проблему с датами (ирландский формат даты такой же, как итальянский). Это связано с тем, что американский формат - ММ / ДД / ГГГГ, а иногда, когда это возможно, возвращается к основам. Чтобы предотвратить это, я делаю следующее (где я могу)

  1. Чтобы избежать искажения формата листа Excel, я конвертирую его в read в yyyyMMdd и сохраняю как целое число.
  2. Чтобы обеспечить правильный внешний вид при обратной записи в Excel, я использую немецкий формат, который люди могут читать и понимать, но Excel не распознает дату установки на не немецком языке, то есть ДД.ММ.ГГГГ

Это не столько решение, сколько обходной путь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .