из Excel в Word / Ошибки

Программирование на Visual Basic for Applications
AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

из Excel в Word / Ошибки

Сообщение AlexG » 19.09.2006 (Вт) 10:24

Перерыл весь поиск по данной теме....но по своим ошибкам ничего не нашел.

Итак......задача весьма проста - открыть Word из Excel.

1 Вариант - Поздняя привязка.
(лезем в ссылки - отрубаем ссылку на Word и запускаем сие...)

Код: Выделить всё
Dim objWord As Object
  Set objWord = CreateObject("Word.Application")
  MsgBox objWord.Version
  With objWord
    .Visible = True
    .WindowState = xlMaximized
  End With
objWord.Quit
Set objWord = Nothing


Эффекта - никакого. То есть CreateObject - вообще не отрабатывает свое. Почему?

2 Вариант - Раняя привязка.
(лезем в ссылки - подключаем ссылку на Word и запускаем сие...)
Код: Выделить всё
Dim objWord As New Word.Application
Dim objWordDoc As Word.Document
  With objWord
    .Visible = True
    .WindowState = xlMaximized
  End With
Set objWordDoc = objWord.Documents.Add
objWordDoc.Application.Activate
MsgBox objWord.Version
objWord.Quit
Set objWord = Nothing


Эффект есть - но в Worde вылетает сообщение:
"Неверна указана единица измерения". Если убрать данное сообщение - дальше код отрабатывается нормально.

Но...мне надо так 20 Word файлов отработать.
Лезем в Wordе: Сервис/ Параметры/Обшие/Единицы измерения/

И что? Чтобы там не менять - все одно вылетает ошибка.

Кто может подсказать, в каком варианте и как можно добиться безглючного открытия Word?
ПС. Год назад я без проблем решал такую задачу. Но тогда стоял офис 2000. Сейчас на работе поставили 2003 ...и понеслось...:)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.09.2006 (Вт) 10:32

Глюк ворда, связанный с локализацией. Причем установка патчей и обновлений иногда помогает, иногда нет.
Мне побороть не удалось, сама пропала. Но проверь, нет ли в процессах невидимого ворда? Если есть, то прибей его, ошибки из-за этого могут генериться.
Lasciate ogni speranza, voi ch'entrate.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 19.09.2006 (Вт) 10:35

Указанный код (2ой вариант) у меня работает без проблем. Может, глюки? :) Или у тебя там какие-нибудь глючные надстройки подключаются?
Быть... или не быть. Вот. В чём вопрос?

AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Сообщение AlexG » 19.09.2006 (Вт) 10:40

alibek писал(а):Но проверь, нет ли в процессах невидимого ворда?


Постоянно так делаю. Только запуск и лезу в процессы - невидимого нет.

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 19.09.2006 (Вт) 10:42

У меня работают оба варианта..

"Неверна указана единица измерения".

На какой строке сие выдается?
подписи нет и не будет

AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Сообщение AlexG » 19.09.2006 (Вт) 10:43

uhm писал(а):Или у тебя там какие-нибудь глючные надстройки подключаются?


Вообще ничего не подключаю. Запускаю эти коды (поочередно разумеется.....:)...) в "голом" виде.

Вообщем - похоже версия сборки Office - поганная.

Озаботил свое IT - должны поставить другую.

Спасибо - кто ответил!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.09.2006 (Вт) 10:43

Из разряда плясок с шаманским бубном.

Попробуй в Outlook указать "Использовать Word в качестве редактора почты" и позапускать Word, то автономно, то создавая письмо.
В конце-концов что-то там в недрах реестра/офиса разглючивается и дальше работает нормально.
Lasciate ogni speranza, voi ch'entrate.

AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Сообщение AlexG » 19.09.2006 (Вт) 10:47

inq писал(а):У меня работают оба варианта..
На какой строке сие выдается?


- судя по писку машины на этом...

Код: Выделить всё
Dim objWordDoc As Word.Document


- а судя по визуализации на этом:

Код: Выделить всё
  With objWord
    .Visible = True


inq писал(а):У меня работают оба варианта..


Ага. Вот что и требовалось доказать. Значит таки действительно из-за версии сборки Office.

Друже огромное спасибо!

AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Сообщение AlexG » 20.09.2006 (Ср) 13:48

Вылезла другая проблема...

Есть Word документ, с которого в Excel считываются значения ПОЛЕЙ ФОРМЫ...

Код: Выделить всё
Dim objWord As New Word.Application
Dim objWordDoc As Object
     With objWord
        .Visible = True
        .WindowState = wdWindowStateMaximize
        Set objWordDoc = .Documents.Open(FileNameImport)
    End With
objWordDoc.Application.Activate
    With Word.Documents(objWordDoc)
        strOrderStatus = .FormFields("cmbOrderStatus").Result
        dtmDate = .FormFields("txtDate").Result
        strDeparment = .FormFields("cmbDepartment").Result
        strInitiator = .FormFields("cmbInitiator").Result       

        ' ну и тут еще пачка полей считывается

    End With
    objWordDoc.Close wdDoNotSaveChanges
    Set objWordDoc = Nothing
    objWord.Quit
    Set objWord = Nothing


1 раз на 5 случаев - происходит сбой на строке:

Код: Выделить всё
With Word.Documents(objWordDoc)


Ошибка 4160 / Bad file name
Смотрел отладчиком, на этапе выполнения честно показывает что ( в моем случае) objWordDoc = "FundingOrder.doc"

Абсолютно ЯВНО вылазит такая ошибка, если у пользователя был уже октрыл свой Word, или есть скрытый Word в процессах.

Но ведь есть же объектная ссылка?
как уйти от этого конфликта?

inq
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 185
Зарегистрирован: 12.04.2006 (Ср) 7:50
Откуда: 78

Сообщение inq » 20.09.2006 (Ср) 14:05

поменять на
Код: Выделить всё
With objWord.Documents(objWordDoc)
?
подписи нет и не будет

AlexG
Обычный пользователь
Обычный пользователь
 
Сообщения: 69
Зарегистрирован: 08.12.2003 (Пн) 15:47
Откуда: Украина, Киев

Сообщение AlexG » 20.09.2006 (Ср) 14:11

Ураааааааааааааааааааааааааааа!!!!!!!!

Человечище!! Огромное спасибо от меня и от всего отдела!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55

    TopList