格式化函数vba更改日期

时间:2009-03-31 07:55:42

标签: excel vba excel-vba

vba中的格式化功能正在改变日期。例如,对于格式(“3/12/2009”,“DD / MM / YYYY”),该函数返回12/03/2009,其中“3/12/2009”是excel vba从具有值12的单元格读取的内容-Mar-2009,格式为“dd-mmm-yyyy”

2 个答案:

答案 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日)显然是月与日之间的差异