0

我想在宏的末尾保存一个 Excel 工作簿,文件名中有一个动态日期。我希望名称包含上个月。例如,如果宏在 2013 年 8 月 9 日运行,我希望文件以指定的 7/2013 保存。这就是我所拥有的,如果我使用当前月份,它会很好用。但是,如果我在 2013 年 8 月 9 日运行它,我希望文件保存为“2013-07 月度报告”。

ActiveWorkbook.SaveAs "\\FULL PATH\Monthly Report " & Format(Date, "yyyy-mm") & ".xls"

End Sub

我以前也使用过类似的东西,但也无法减去一个月:

wbNam = "Monthly Report_"
dt = Format(CStr(Now), "yyyy_mm")
ActiveWorkbook.SaveAs Filename:= wbNam & dt
End Sub

谢谢!

4

2 回答 2

1

只需使用此功能

Public Function PreviousMonth(ByVal d As Date) As Date
PreviousMonth = DateSerial(Year(d), Month(d) - 1, Day(d))
End Function

DateSerial足够聪明,可以支持零月数或负月数。换句话说,PreviousMonth(#1/1/2000#) 是 1999 年 12 月 1 日。

于 2013-08-09T19:15:13.547 回答
1

尝试:

dt = Format(DateAdd("m", -1, Now), "yyyy_mm")
于 2013-08-09T19:17:12.273 回答