vba中的格式化功能正在改变日期。例如,对于格式(“3/12/2009”,“DD / MM / YYYY”),该函数返回12/03/2009,其中“3/12/2009”是excel vba从具有值12的单元格读取的内容-Mar-2009,格式为“dd-mmm-yyyy”
答案 0 :(得分:2)
不,不是。
如果将date-as-string传递给Format函数,它将使用当前区域设置对其进行解析。您的设置显然是MM / DD / YYYY,这是美国的默认设置。如果手动设置,没有什么可以阻止Excel将日期显示为DD / MM / YYYY,但默认情况下它会显示MM / DD / YYYY。
待办事项:停止以字符串形式阅读日期。把它们看作日期。
dim d as date
d = activecell.value
答案 1 :(得分:0)
我自己有几次问题,其中VBA在Access中的大多数日期都是欧洲人,但有些是美国:
这不能正常工作:
myRs.FindFirst ("Date =#" & myDate & "#")
这有效:
myRs.FindFirst ("Date =#" & Format(myDate, "Long Date") & "#")
漫长的约会(例如2012年1月1日)显然是月与日之间的差异