Как предотвратить возникновение ошибки при одновременном обращении пользователя и обработки к Excel.
Если открыт (или открыть) файл Excel (к которому будет обращаться обработка), и активировать какую-либо ячейку или любое диалоговое окно и при этом обработка обратится к этому файлу, то возникнет ошибка. Так же, ошибка может возникнуть, если обработка запустила один экземпляр Excel, если пользователь, во время работы обработки откроет другой файл Excel или тот, к которому обращается обработка, то этот файл откроется в том же экземпляре приложения Excel и тогда опять возможна ошибка. Как этого избежать?
- Описание
- Подробнее
Описание
Для этого достаточно для свойства «Interactive» установить значение Ложь. Это запретит пользователю что-либо делать в запущенном экземпляре приложения. Чтобы приложение во время работы не задавало каких-либо «глупых» вопросов, то для этого достаточно свойству «DisplayAlerts» установить значение «Ложь».
Excel = Новый COMОбъект(«Excel.Application»);
Excel.Interactive = Ложь;
Excel.DisplayAlerts = Ложь;
После окончания, не забудьте установить значение «Истина» обоим свойствам.
Excel.Interactive = Истина;
Excel.DisplayAlerts = Истина;
Иначе, если пользователь успеет открыть какой-либо файл именно в этом экземпляре Excel, то открытые файлы будут недоступны как для редактирования, так и для закрытия. Придётся «убивать» процесс через диспетчер задач.

