2015-11-08 50 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