Ошибка времени выполнения при отмене диалогового окна "Сохранить как", отображаемого через VBA
У меня есть макрос, который определенным образом форматирует документ, а затем сохраняет его, используя ActiveDocument.Save
.
однако иногда документ еще не сохранен, а в некоторых случаях я не хочу его сохранять. К сожалению, нажатие кнопки "Отмена" при отображении диалога "Сохранить как" вызывает ошибку времени выполнения (4198) -
ошибка
кто-нибудь знает как я могу предотвратить это? Спасибо.
3 ответов
Обновлено: Теперь
1. Проверяет, был ли файл ранее сохранен или нет
2. Если файл не сохранен, для отображения диалог
либо сохранить файл, либо обработать Cancel
код
Dim bSave As Boolean
If ActiveDocument.Path = vbNullString Then
bSave = Application.Dialogs(wdDialogFileSaveAs).Show
If Not bSave Then MsgBox "User cancelled", vbCritical
Else
ActiveDocument.Save
End If
пожалуйста, попробуйте следующее, добавив некоторые инструкции по обработке ошибок:
On Error Resume Next 'to omit error when cancel is pressed
ActiveDocument.Save
If Err.Number <> 0 Then 'optional, to confirmed that is not saved
MsgBox "Not saved"
End If
On Error GoTo 0 'to return standard error operation
для разработчиков vsto, пожалуйста, перейдите сюда
if (Globals.ThisAddIn.Application.ActiveDocument.Path == String.Empty)
{
Word.Dialog dlg;
Object timeout = 3000;
dlg = Globals.ThisAddIn.Application.Dialogs[
Word.WdWordDialog.wdDialogFileSaveAs];
int result = dlg.Display(ref timeout);
}
else
{
Globals.ThisAddIn.Application.ActiveDocument.Save();
}
результат сохранит, какая кнопка нажата (0 - отмена, 1 - ок, 2 - закрыть)