【问题标题】:Format function vba changing date格式化函数vba更改日期
【发布时间】:2009-03-31 07:55:42
【问题描述】:

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    不,不是。

    如果将日期字符串传递给 Format 函数,它将使用当前的区域设置对其进行解析。您的设置显然是 MM/DD/YYYY,这是美国的默认设置。如果手动设置,没有什么可以阻止 Excel 将日期显示为 DD/MM/YYYY,但默认情况下它会显示 MM/DD/YYYY。

    待办事项:停止将日期读取为字符串。将它们读取为日期。

    dim d as date
    d = activecell.value
    

    【讨论】:

    • 或者,如果您必须使用字符串,则以 YYYY-MM-DD 格式:2009-03-12 为例。不过还是用 Date 更好
    【解决方案2】:

    在 Access 中的 VBA 将大多数日期读取为欧洲日期但有些日期为美国时,我自己遇到过几次问题:

    这不能正常工作:

    myRs.FindFirst ("Date =#" & myDate & "#")
    

    这行得通:

    myRs.FindFirst ("Date =#" & Format(myDate, "Long Date") & "#")
    

    长日期(例如 2012 年 1 月 1 日)明显区分月份和日期

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-14
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多