如何解决 VBA FORMAT 函数问题?

如何解决 VBA FORMAT 函数问题?

我正在使用 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 日。是您要格式化以仅显示月份的内容。

您需要删除MONTHFORMAT。以下任一方法都可以:

strMonthNo = Format(DateAdd("m", -1, Date))

strMonthNo = Month(DateAdd("m", -1, Date))

相关内容