Поместите его в блок Try / Catch, как следует с любым кодом, который может дать сбой? Если он находится в блоке try / catch, то, учитывая информацию, которую вы нам дали, дизайн по определению имеет недостатки, потому что ....
- Функция ExcelWorkbook.Save () - это то, что вы не можете изменить. Это то, что есть ...
- Это сбой, потому что пользователь отменил сохранение, и вы вызываете метод SaveAs без предварительной проверки на наличие файла, и если Excel предлагает пользователю дать ему возможность отменить, и единственная опция - это ошибка Тогда единственный другой вариант - не предоставлять пользователю такой выбор.
В качестве общей рекомендации я бы сказал, что вы должны проверить наличие файла и дать пользователю возможность отменить свой ВАШ код. Если они отменяются, проблема устранена. Если они решили не отменять, просто удалите файл перед вызовом функции Excel Save ().
В качестве альтернативы вы можете вместо этого использовать функцию SaveAs () вместо Save () и установить для необязательного параметра с именем ConflictResolution значение XlSaveConflictResolution.xlLocalSessionChanges
(Если вы спросите, я знаю, что иметь дело с необязательными параметрами из C # - это боль, поэтому прочитайте этот предыдущий вопрос , как с ними обращаться ...)