Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 19.11.2018, 14:59   #1
MrDimain
Пользователь
 
Регистрация: 16.04.2017
Сообщений: 18
Репутация: 10
По умолчанию Закрытие Word из Excel

Здравствуйте, форумчане.
Такая проблема. Есть макрос, который заполняет документ Word по данным с листа. В конце кода освобождаю ресурсы.
Так вот на операции WordApplication.Quit очень долго висит(2-3мин).
Подскажите как ускорить процесс.
Вот код:
Код:
Sub ExportToWord()

    Application.StatusBar = "Подготовка к выводу КС..."
On Error GoTo Finaly:
    ' Переменные для WORD ==============================
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    ' Общие переменные =================================
    Dim PathFile As String
    Dim tmpRange As Range
    Dim tmpStr As String
    Dim CTB_Count As Integer
    Dim I As Integer
    ' Инициализация ====================================
    PathFile = ThisWorkbook.Path & "\" & "templates\КС\"
    Set WordApp = New Word.Application ' CreateObject("Word.Application")
    Set WordDoc = WordApp.Documents.Add(PathFile & "КС_РД.DOTX")
    
    
    '   ================================================
    '   ==========    Заполнение данными    ============
    '   ================================================
    '   Сохранение файлов ----------------------------------------------
    Application.StatusBar = "Сохранение в Word..."
    Call WordSaveAsDOCX(WordDoc, "КС", НОМЕР_КОМПЛЕКТА & "-КС")
    Application.StatusBar = "Сохранение в PDF..."
    Call WordSaveAsPDF(WordDoc, "КС", НОМЕР_КОМПЛЕКТА & "-КС")
    
Finaly:
    
    Application.StatusBar = "Завершение работы (1/4)..."
    WordDoc.Close False
    Application.StatusBar = "Завершение работы (2/4)..."
    WordApp.Quit          <<------------ ВОТ ТУТ !!!!!
    
    Application.StatusBar = "Завершение работы (3/4)..."
    Set WordDoc = Nothing
    Application.StatusBar = "Завершение работы (4/4)..."
    Set WordApp = Nothing
    
    Application.StatusBar = "ГОТОВО"
    MsgBox "ГОТОВО!"
End Sub
MrDimain вне форума   Ответить с цитированием
Старый 20.11.2018, 21:44   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Адрес: Россия, Урал
Сообщений: 6,829
Репутация: 1220

skype: ExcelVBA.ru
По умолчанию

перед строкой
Call WordSaveAsDOCX ...
добавьте строку
WordApp.visible = true
и смотрите, что происходит с Word в процессе закрытия

по идее, ничего там зависать не должно, и Word должен закрываться за секунду
EducatedFool вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[VB] Копирование из Word в Excel: нужно переместить текст закладок из Word в определенные ячейки Excel. Broiler21 Помощь студентам 0 27.10.2017 15:41
Закрытие созданного процесса Excel AndrzejX Общие вопросы Delphi 2 07.08.2012 12:07
И снова закрытие файлов Word... hackPNZ Microsoft Office Word 6 29.11.2011 11:04
Закрытие Excel средствами acces gamaiunov_alex Microsoft Office Access 2 07.10.2010 12:18
Закрытие Excel-я из Delphi Demagog Помощь студентам 12 02.10.2009 12:16


17:01.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru