我正在使用 Excel 2103 VBA 中的 FORMAT 函数,但没有得到预期的结果。
我的代码行是:
strMonthNo = Format(Month(DateAdd("m", -1, Date)), "mm")
Date
我期望 29/11/2016 在哪里strMonthNo = 10
,但事实并非如此。它是 01!
如果没有 FORMAT,则值是正确的。
我该如何解决这个问题?
答案1
输出Month
是数字,而不是日期。
Format(x,"mm")
期望 x 是一个日期,因此它将其处理为 1900 年 1 月 10 日,这就是结果的原因1
。
只需使用
Format(Month(DateAdd("m", -1, Date)), "00")
答案2
你做了两次同样的事情。
DateAdd
给出您想要处理的日期 - 一个月前的今天。Month
然后该函数从该日期中提取月份 - 目前为 10。
FORMAT
然后函数那个月- 10 - 并将其解释为完整日期,即 1900 年 1 月 10 日。这是您要格式化以仅显示月份的内容。
您需要删除MONTH
或FORMAT
。以下任一方法都可以:
strMonthNo = Format(DateAdd("m", -1, Date))
strMonthNo = Month(DateAdd("m", -1, Date))