使用VBA宏后,重新格式化日期和时间不会更改

时间:2019-04-12 04:45:23

标签: excel vba date formatting

我正在尝试获取日期为mm / dd / yyyy的文件并将其重新格式化为yyyy-mm-dd并将该新格式输出到新的工作表中,但是即使在运行我的VBS宏之后,尽管birthDate是正确的。我已经看到,无论如何,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 :(得分:0)

Excel识别为日期的任何数字都将以控制面板区域设置->日期和打开该文件的时间的日期的短日期格式显示。

要覆盖此内容,请执行以下任一操作: 1)按照戴棉的建议在循环中明确设置格式;或 2)通过在日期前加单引号来强制将格式转换为字符串。

例如,在最后一行代码更改中:

birthDate =(出生年份&“-”&birthMonth&“-”&birthDay)

birthDate =“'”&(birthYear&“-”&birthMonth&“-”&birthDay)