Мій формат побачень котиться між італійською та англійською мовами VBA excel


2

Я зробив макрос, щоб витягнути дату зі слов яного документа і поставити в excel. У мене є контроль вмісту вибору дат у слові. Моя мова в моєму комп'ютері встановлена ​​на італійській DD / MM / YYYY, мова мого вибору дати встановлена ​​на італійський DD / MM / YYYY. у моєму виборі дат я бачу дату, наприклад, 08.06.2017. Зараз я використовую:

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

але я отримую 06.08.2017 Я спробував:

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

Але я отримую дату, як 06.08.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.06.2017

Коли я зареєструюсь у excel A1 tho, я отримаю 06.08.2017, і ця комірка відформатована як "коротка дата, dd / MM / YYYY")

чому?


Цікаво, чи потрібно вам відформатувати цю клітинку як textабо подібну, щоб уникнути спроб Excel бутиclever
Дейв,

Це може бути трохи складніше, але краще перетворити спочатку будь-який рядок дати у змінну дати та встановити значення комірки зі значенням змінної. Це гарантує код-код впевнений, що ви встановили правильне значення. Якщо на вашому робочому аркуші все ще відображатиметься неправильна дата, ви можете розпочати налагодження, чітко встановивши формат номерів комірок у "дату за замовчуванням" вручну та з кодом. Зрештою глюк повинен виявити себе.
Vince42

Відповіді:


0

Є два способи вирішити проблему з датами (ірландський формат дати такий же, як італійський). Це пов’язано з тим, що американський формат - MM / DD / YYYYY, а іноді, коли він може бути або повертається до основ. Щоб запобігти цьому, я роблю наступне (де можу)

  1. Щоб запобігти пошкодженню формату Excel, я перетворюю його на читання в yyyyMMdd і зберігаю як ціле число.
  2. Щоб застосувати правильний вигляд під час написання списку на excel, я використовую німецький формат, який люди можуть читати та розуміти, але excel не розпізнає в налаштуваннях, що не є німецькими, як дату, тобто DD.MM.YYYY

Це не стільки рішення, скільки робота навколо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.