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

Используя переменный объект, вы можете сделать следующее (то нет необходимости использовать имя рабочей книги в Save/Close ведомостях):

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

++ nice :) BTW вы можете написать 'wb.Save' и' wb.Close' вместе как 'wb.Close (True)' –

+0

Очень приятно, спасибо для дополнительной эффективности, Дэвид и Сиддхарт. – David

Смежные вопросы