Подавить «сохранить изменения» при создании документа с помощью автоматизации Excel - PullRequest
2 голосов
/ 09 февраля 2010

В бизнес-приложении, над которым я работаю, у нас есть возможность экспортировать в Excel, что достигается с помощью автоматизации Excel.У нас есть два метода экспорта - один, который сохраняет файлы и затем присоединяет их к электронной почте Outlook (опять-таки через автоматизацию);другая, по сути, представляет собой «предварительный просмотр», который выполняет экспорт в Excel, но делает приложение видимым в конце, а не сохраняет / отправляет по электронной почте.

Одна из проблем, о которых сообщается, заключается в том, что при предварительном просмотре не выполняетсяизменения и попробуйте закрыть Excel, он предлагает стандартное «вы хотите сохранить свои изменения».По их мнению, поскольку они не внесли никаких изменений, оно не должно показывать это сообщение.

Есть ли способ подавления этого сообщения, кроме принудительного сохранения в месте, которое мы должны очистить вручную"в более поздний момент времени"?

Ответы [ 3 ]

1 голос
/ 09 февраля 2010

У меня работал следующий способ:

Set XLHandle =  CreateObject("Excel.Application")
XLHandle.DisplayAlerts = False
XLHandle.Visible = True

Set XLBook = XLHandle.WorkBooks.Open("c:\temp\1.xls")

'This is where your user reviews the book and manually closes it.
'If you want to test out this code set a breakpoint at the next line, manually close Excel workbook then proceed with the execution.
'In your App you would need to implement certain synchronization with user actions instead of setting a breakpoint.   

XLHandle.Quit

Set XLBook = Nothing
Set XLHandle = Nothing 

Таким образом, вы подавляете все всплывающие окна. Вы можете получить доступ к свойству DisplayAlerts в любое время, а не только после создания объекта автоматизации.

Спасибо, Альберт Гареев

http://automation -beyond.com /

1 голос
/ 10 сентября 2010

Если для свойства Workbook::Saved установлено значение true, Excel не будет предлагать сохранять изменения (если вы не вносите никаких изменений)

0 голосов
/ 09 февраля 2010

Как насчет objWorkbook.Close false

этот параметр "false" отвечает за SaveChanges

Решает ли это проблему?

Или, если вы хотите принудительно сохранить рабочую книгу в любое время, вместо этого укажите "true".

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