1

我在使用 Excel 宏 (VBA) 时遇到问题,该宏旨在从 Excel 电子表格中获取日期,减去一个月并将其重新格式化为 MMM-YY。基本上我想采取 3/31/2013 并将其转换为 2 月 13 日

这是我的代码:

Dim ReportDate As Date
ReportDate = Worksheets("Current").Cells(2, 16) 'ex. 03-31-2013
prevMonth = Format((Month(ReportDate) - 1) & "/" & Day(ReportDate) & "/" & Year(ReportDate), "mmm") & "-" & Format(ReportDate, "yy")
Debug.Print prevMonth

我得到的结果是 2/31/2013-13

所以我尝试更改 prevMonth 变量:

prevMonth = Format((Month(ReportDate) - 1) & "/" & Day(ReportDate) & "/" & Year(ReportDate), "mmm-yy")

但又得到了 2/31/2013

我试图将 prevMonth 声明为 Integer 或 Date 但出现类型不匹配错误。我只能将它声明为字符串,但它仍然对程序没有帮助。

在此先感谢您的帮助。

4

1 回答 1

6

试试这个

Sub Demo()
    Dim ReportDate As Date
    Dim prevMonth As Date

    ReportDate = Worksheets("Current").Cells(2, 16) 'ex. 03-31-2013
    prevMonth = DateAdd("m", -1, ReportDate)
    Debug.Print Format(prevMonth, "mmm-yy")
End Sub
于 2013-04-05T20:41:59.147 回答