2014-01-08 4 views
0

У меня есть макрос, который вносит некоторые изменения в книгу, а затем сохраняет эту книгу в другой папке под другим именем файла. Код для сохранения Учебного пособия:Workbook.SaveAs сбой Excel с некоторыми книгами, но не с другими

ActiveWorkbook.SaveAs sPass & "\" & sFile 

Некоторых рабочих книги сохранить правильно, в то время как другие вызывают Excel сбой с сообщением

Microsoft Excel has stopped working 

Для книг, которые сбой при сохранении программно, если выйти из программы до SaveAs и сохраните их вручную под тем же именем, которое SaveAs собирался использовать, они сохраняют без проблем.

Я пробовал со ссылкой на книгу по индексу, как:

Workbooks(workbookName).SaveAs sPass & "\" & sFile 

Также попробовал только с помощью фиктивного файла:

Workbooks(workbookName).SaveAs "U:\someOtherDir\xyz.xlsm" 

Я также пытался окружающих SaveAs с EnableEvents инвалидизации:

Application.EnableEvents=False 
ActiveWorkbook.SaveAs sPass & "\" & sFile 
Application.EnableEvents=True 

Но авария все еще встречается для некоторых учебные пособия. Я не нашел шаблона о том, какие книги не работают. Они открываются правильно, т. Е. Они не повреждены.

+0

Когда вы говорите «сбой», что именно происходит? Любые сообщения об ошибках или просто полный бесшумный сбой, когда Excel исчезает по мере сбоя процесса? – Blackhawk

+0

Я получаю всплывающее сообщение «Microsoft Excel перестала работать», а затем, как только я щелкнул это всплывающее окно, все экземпляры Excel закрываются. – sigil

+0

Что касается неправильной работы книг, попытались ли вы переместить данные в новую книгу, а затем проверить макрос? Существует ли потенциал для какого-либо повреждения файлов? –

ответ

0

Также, чтобы сделать правильный .SaveAs, используйте это. Это указывает правильность FileFormat. Это обеспечит сохранение файла с правильным файловым форматом и позволит избежать сообщения об ошибке, которое вы получите, когда вы вручную откроете файл после этого.

' 
'~~~> Rest of the code 
' 
sFile = "U:\someOtherDir\xyz.xlsm" 
Workbooks(workbookName).SaveAs sFile, 52 
DoEvents 
' 
'~~~> Rest of the code 
' 
+0

Это не решило проблему; Я все еще получаю сообщение об ошибке с сообщением «Microsoft Excel перестало работать». – sigil

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