我正在尝试获取日期为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)
答案 0 :(得分:0)
Excel识别为日期的任何数字都将以控制面板区域设置->日期和打开该文件的时间的日期的短日期格式显示。
要覆盖此内容,请执行以下任一操作: 1)按照戴棉的建议在循环中明确设置格式;或 2)通过在日期前加单引号来强制将格式转换为字符串。
例如,在最后一行代码更改中:
birthDate =(出生年份&“-”&birthMonth&“-”&birthDay)
到
birthDate =“'”&(birthYear&“-”&birthMonth&“-”&birthDay)