Задать вопрос
MaxSter
@MaxSter
Software engineer

Как открыть Excel-документ в отдельном процессе?

При работе приложения записывается отчёт в Excel. Если при этом параллельно открыт другой документ в Excel, то следующий код закроет и Excel-документ, открытый с помощью COM, и тот файл, который к приложению отношения не имеет:
Dim w As Workbook
        For Each w In mExcel.Workbooks
            w.Save()
        Next
 mExcel.Quit()


Насколько я понял, погуглив, это особенность Excel 2013 - открывать документы в одном процессе. Подскажите, как же открыть Excel с помощью COM в отдельном процессе? Спасибо!
  • Вопрос задан
  • 1020 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Sumor
Quit всегда закроет все документы, которые открыты.
Выходов несколько: Во-первых, созданные книгу нужно закрыть методом Close(). Далее, можно до создания отчётов подсчитать количество открытых книг в подключённом Excel, и если открытых книг не было - можно смело закрывать методом Quit, если же были открытые книги - значит не закрывать.
Во-вторых, при создании и подключении к COM можно указать, что нужно обязательно новый экземпляр Excel. К сожалению, этот параметр часто скрыт за com-обёртками и недоступен для передачи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы