VBA сохраните файл .xls в определенном месте с определенным именем файла

#excel #vba #save

Вопрос:

Я пытаюсь написать код, который берет файл .xls и изменяет значения в нем, после чего сохраняет его в заданном месте с заданным именем файла, которое всегда может изменяться в зависимости от строки «NewSaveName», но это выдает мне ошибку «Закрыть» объекта «_Workbook» не удалось», и я не могу понять, почему. Иногда это работает, а иногда нет. Код, который я написал:

 Workbooks("FormatSketch_DesignTable").Close SaveChanges:=True, Filename:="E:FORMATTemp" amp; SaveName amp; ".xls"
 

Не мог бы кто-нибудь, пожалуйста, помочь мне решить эту проблему?

Комментарии:

1. С какой версией были созданы исходные файлы?

2. Он был создан в Excel 2013

3. Я не думаю, что это повлияет на ситуацию. Что произойдет, если вы разделите сохранение и закрытие на 2 строки?

4. Я смог воспроизвести ошибку с SaveName = "" помощью или с SaveName = "a" помощью . SaveName Всегда ли содержит правильное значение?

5. В выражении есть ровно один неочевидный момент — переменная SaveName . Попробуйте сделать fn = "E:FORMATTemp" amp; SaveName amp; ".xls" , проверьте полный путь, а затем используйте fn в .Close