Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2015, 13:42   #1
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
Восклицание Обращение из Excel 2003 к открытому документу Word по названию

Пытал Гугл, не признается...
Пытаюсь вставить в таблицу уже открытого документа Word 2003 из Excel данные. Не получается обратится к документу по его названию без указания полного пути.

Код:
Sub ZapTabl()
    Stroka = ActiveCell.row
        
Set WA = CreateObject("Word.Application")
Set WD = WA.Documents.Add(Filename:="spr_20052015.doc")

WD.Tables(1).Cell(1, 1).Range = "!!!"
WD.Tables(5).Cell(3, 2).Range =  ThisWorkbook.Sheets("DATA").Cells(Stroka, "F")
End Sub
В отчаянии
xamillion вне форума Ответить с цитированием
Старый 20.05.2015, 13:54   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а указать полный путь Вам не позволяют религиозные убеждения?

и вообще...
в теме написано "обратиться к открытому документу"
судя по коду - Вы пытаетесь открыть документ в новом экземпляре Word
а что нужно-то???

если обратиться к уже открытому документу то ищите "поиск окна по имени" примеры были и на форуме
если открыть документ - то укажите-таки полный путь к нему, а не только название.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 20.05.2015, 13:59   #3
27102014
Форумчанин
 
Регистрация: 27.10.2014
Сообщений: 248
По умолчанию

А в чем проблема указать путь документа word?
Как понял Ваш код, Вы создаете документ word из Excel - можно задать переменную с указанием пути
Код:
  'место сохранения документа 
Папка = ActiveWorkbook.Path

'имя документа word
Filename = Папка & "\" & "документ" & ".doc"
27102014 вне форума Ответить с цитированием
Старый 20.05.2015, 15:54   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
Sub ZapTabl()
    Dim WA As Object
    Stroka = ActiveCell.Row

    ActivateWord WA

    WA.Visible = True
    Set WD = WA.Documents("test.doc")

    WD.Tables(1).Cell(1, 1).Range = "!!!"
    WD.Tables(5).Cell(3, 2).Range = ThisWorkbook.Sheets("DATA").Cells(Stroka, "F")
End Sub


Private Function ActivateWord(WA)
    On Error Resume Next
    Set WA = GetObject(, "Word.Application")
    If WA Is Nothing Then
        Set WA = CreateObject("Word.Application")
    End If
End Function
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 20.05.2015, 16:36   #5
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
а указать полный путь Вам не позволяют религиозные убеждения?
В том то и дело, что файл уже открыт и путь к нему проблематично каждый раз искать. Зато точно знаю название файла...

Цитата:
Сообщение от IgorGO Посмотреть сообщение
и вообще...
в теме написано "обратиться к открытому документу"
судя по коду - Вы пытаетесь открыть документ в новом экземпляре Word
а что нужно-то???
тут не пинайте валенка... так и есть... нужно обратиться к открытому документу

Цитата:
Сообщение от IgorGO Посмотреть сообщение
если обратиться к уже открытому документу то ищите "поиск окна по имени" примеры были и на форуме
спасибо... направили ... на форуме подобного не нашел...

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Код:
Sub ZapTabl()
    Dim WA As Object
    Stroka = ActiveCell.Row

    ActivateWord WA

    WA.Visible = True
    Set WD = WA.Documents("test.doc")

    WD.Tables(1).Cell(1, 1).Range = "!!!"
    WD.Tables(5).Cell(3, 2).Range = ThisWorkbook.Sheets("DATA").Cells(Stroka, "F")
End Sub


Private Function ActivateWord(WA)
    On Error Resume Next
    Set WA = GetObject(, "Word.Application")
    If WA Is Nothing Then
        Set WA = CreateObject("Word.Application")
    End If
End Function
Просто в яблочко...
спасибо. и не ругайте бездарей ))) сам такой... и ругаюсь бывает, но в других вопросах... спасибо за понимание!
xamillion вне форума Ответить с цитированием
Старый 20.05.2015, 16:50   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Ну там ещё нужно проверку навесить - есть ли такой документ, что делать если его нет или Ворд создали сами (тогда вероятно нужно этот документ открывать) и т.д.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление свойств к документу Word МихаилЧетин Microsoft Office Word 3 24.07.2013 09:58
Получение доступа к открытому документу Word demiancz Общие вопросы Delphi 2 08.07.2013 22:15
Сохранить путь к документу Word КатЭ БД в Delphi 3 28.11.2012 09:37
Получить HTML-текст, соответствующий документу WORD vfayans Microsoft Office Excel 2 05.04.2012 17:48
присвоить идентификационный номер документу word gkgoro Microsoft Office Word 7 14.09.2010 22:42