2017-07-26 59 views
2

我在寫一個VBA宏,我需要激活一個名爲月度管理報告2017年6月的工作簿(該月將始終是上個月)。 我使用下面的代碼以名稱激活月份和年份的工作簿

Windows("Monthly Life Management Report " & Format(Date, "mmm yyyy") & ".xlsm").Activate 

但我得到一個下標超出範圍的錯誤。

+0

運行這段代碼時,這是打開工作簿?另外,上個月不應該是六月,而不是五月? –

+0

是的工作簿是開放的,道歉是6月(我正在使用舊文件進行測試)我現在將重命名 –

+0

用'Workbooks'替換'Windows' – Tom

回答

3

嘗試下面的代碼:

Dim wb As Workbook 

Set wb = Workbooks("Monthly Life Management Report " & Format(DateAdd("m", -1, Date), "mmm yyyy") & ".xlsm") 
wb.Activate 

注意:該工作簿的名稱應保存爲"Jun 2017"而不是"June 2017"

如果你有一個完整的月份作爲文件名,然後輸入如下替代線路:

Set wb = Workbooks("Monthly Life Management Report " & Format(DateAdd("m", -1, Date), "mmmm yyyy") & ".xlsm") 
+0

爲什麼將它設置爲一個變量? – Tom

+0

仍然收到相同的錯誤 –

+0

@E_McAndrew你的'Workbook'的確切名稱是什麼? –