Дата в пользовательской форме не отображается в правильном формате в электронной таблице - PullRequest
0 голосов
/ 09 января 2019

У меня есть пользовательская форма, которая имеет текстовое поле с именем «DateBox». У меня есть следующий код:

Private Sub UserForm_Initialize()
    DateBox.Value = Format(Date, "d/m/yy")

При отправке формы у меня есть следующий код для обновления первой пустой ячейки Sheet1 с помощью даты в соответствии с формой.

   Cells(emptyRow, 1).Value = DateBox.Value 

Однако вместо д / м / гг электронная таблица отображает м / д / гг. Я провел поиск и понял, что это как-то связано с региональными настройками. Я не уверен, что изменение настроек будет полезным для меня, так как эта форма будет использоваться разными группами людей с разными настройками.

Хотелось бы узнать, можно ли как-то жестко закодировать дату, чтобы она появилась в нужном формате?

1 Ответ

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

VBA ориентирован на US-EN, и когда речь идет о датах, он хочет принять MM/DD/YYYY, когда пытается преобразовать строку в дату.

Сначала мы хотим форсировать дату, анализируя строку, поступающую из текстового поля:

Cells(emptyRow, 1).Value = DateSerial(Split(DateBox.Value,"/")(2),Split(DateBox.Value,"/")(1),Split(DateBox.Value,"/")(0))

Затем отформатируйте ячейку после разбора даты:

Cells(emptyRow, 1).NumberFormat = "d/m/yy"

Или рассмотрите возможность использования более приемлемого формата для даты dd mmm, yyyy в вашем поле с датами. Это делает его менее двусмысленным.

Спасибо Крису Нилсену за помощь.

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