Дата и время переформатирования не меняются после использования макроса VBA - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь взять файл с датой мм / дд / гггг и переформатировать его в гггг-мм-дд и вывести этот новый формат на новый лист, но даже после запуска моего макроса VBS он не меняется, хотя Дата рождения верна. Я видел, что есть проблемы с Excel, перезаписывающим ваш формат в США независимо. Есть ли способ обойти это? Спасибо!

birthDate = Trim(CStr(Sheet1.Cells(currRawRow, "F")))
    checkInput = InStr(1, birthDate, "/")

If (checkInput > 0) Then
birthYear = Year(birthDate)
birthMonth = Month(birthDate)
birthDay = Day(birthDate)

birthMonth = Format(CStr(birthMonth), "00")
birthDay = Format(CStr(birthDay), "00")
birthYear = Format(CStr(birthYear), "0000")

birthDate = (birthYear & "-" & birthMonth & "-" & birthDay)

1 Ответ

0 голосов
/ 12 апреля 2019

Любое число, распознаваемое Excel как дата, будет отображаться в формате короткой даты региональных настроек панели управления -> Дата и время для любого, кто открыл файл.

Чтобы переопределить это, либо: 1) установить формат явным образом как часть вашего цикла, как предлагает Daimian или; 2) форсировать формат в строку, предшествуя дате в одиночной кавычке.

например, в последней строке изменения кода:

birthDate = (birthYear & "-" & birthMonth & "-" & birthDay)

до

birthDate = "'" & (birthYear & "-" & birthMonth & "-" & birthDay)

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