2013-04-05 80 views
1

我遇到了一個Excel宏(VBA)問題,它意味着從Excel電子表格中獲取日期,減去一個月並將其重新格式化爲MMM-YY。基本上,我想利用2013年3月31日,並將其轉換爲二月-13VBA宏和更改日期格式爲mmm-yy

這裏是我的代碼:

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") 

但僅獲得2013年2月31日再次

我試圖DECL prevMonth作爲整數或日期,但我得到類型不匹配錯誤。我只能將它聲明爲一個String,但它仍然不能幫助程序。

在此先感謝您的幫助。

回答

5

試試這個

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 
+0

+ 1直和簡單:) – 2013-04-05 20:55:17

+0

的偉大工程!謝謝! – 2013-04-05 20:55:46