2015-11-08 54 views
0

我正在写一个简单的宏,它将打开,保存并关闭一个Excel文件myworkbook.xlsx,但我无法做到这一点。我的文件myworkbook.xlsx是在位置:打开,保存并关闭任何文件

C:\Users\Administrator\Desktop\Temp\myworkbook.xlsx

我已经写代码

Sub openSaveClose() 
    Workbooks.Open "C:\Users\Administrator\Desktop\Temp\files\myworkbook.xlsx" // This is working fine 
    Workbooks("C:\Users\Administrator\Desktop\Temp\myworkbook.xlsx").Save 
End sub 

的错误是:

运行时错误9下标越界

+0

这不是很清楚你想做什么。它看起来像你想复制文件在另一个位置。对? – Michele

+0

@Michele感谢您的回复。 不,我不会将它复制到其他位置。 我只想打开,保存并关闭任何简单的Excel文件使用宏。 如果你有任何代码,然后友好分享:) –

回答

4

您只需指定路径打开文件:

Sub openSaveClose() 
    Workbooks.Open "C:\Users\Administrator\Desktop\Temp\files\myworkbook.xlsx" 
    Workbooks("myworkbook.xlsx").Save 
    Workbooks("myworkbook.xlsx").Close 
End sub 

使用对象变量,你可以做以下的(当时没有必要保存/关闭语句中使用工作簿的):

Sub openSaveClose() 
Dim wb as Workbook 
Set wb = Workbooks.Open("C:\Users\Administrator\Desktop\Temp\files\myworkbook.xlsx") 
    wb.Save 
    wb.Close 
End sub 
+0

+很好:)顺便说一句,你可以写'wb.Save'和'wb.Close'作为'wb.Close(True)' –

+0

非常好,谢谢为了提高效率,David和Siddharth。 – David