(Я неделю в английском языке, поэтому сначала извините меня за плохое объяснение: D)
Я открываю файл Excel через свое приложение.
У меня есть надстройка в Excel и кнопка на ленте для сохранения (именно такое действие сохранения, которое выполняет кнопка "Сохранить"), код события Click кнопки находится здесь:
Globals.ThisAddIn.Application.ActiveWorkbook.Save();
В моем приложении я назначаю метод (называемый WorkbookBeforeSave) обработчику событий «BeforeSave» книги, который сохраняет книгу вручную в моем пользовательском каталоге.
private void WorkbookBeforeSave(bool saveasui, ref bool cancel)
{
_excelApp.EnableEvents = false;//_excelApp is my Excel Application
if (!_excelWorkbook.Saved)//_excelWorkbook is Active Excel Workbook
{
_excelWorkbook.SaveCopyAs(_savedFilePath);//_savedFilePath is my custom directory
_excelWorkbook.Saved = true;
}
cancel = true;
_excelApp.EnableEvents = true;
}
проблема заключается в том, что когда я нажимаю оригинальную кнопку сохранения Excel, метод «SaveCopyAs» работает правильно, но когда я нажимаю на мою пользовательскую кнопку «Сохранить», метод «SaveCopyAs» не работает. (исключений не возникло, все коды скомпилированы и отлажены)
_excelApp.EnableEvents = false;
выглядит подозрительно. - person gdoron is supporting Monica   schedule 12.02.2012if (!_excelWorkbook.Saved)
не делает того, что, по вашему мнению, должно. Может быть, попробуйте удалить его и посмотреть, не выдается ли ошибка в этом случае. - person Pynner   schedule 13.02.2012