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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2010, 12:46   #1
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию WORD из EXCEL

Здравствуйте
Подскажите как в excel открыть документ word и записать в него текст? пробывал такой код, но выдает ошибку:
Код:
Dim Appl As Object
    Set Appl = CreateObject("Word.Application")
    Appl.Documents.Open ("файл")
       Selection.MoveDown Count:=11
       election.TypeText Text:="текст текст текст"
    Appl.Visible = True
maksim_serg вне форума Ответить с цитированием
Старый 02.04.2010, 14:57   #2
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Код:
Sub writeWORD()
  s = ThisWorkbook.Path & "\doс.doc" ' по умолчанию файл Ворд в тоже папке. или поменяйте путь
  Dim wrdApp As Object: Set wrdApp = CreateObject("Word.Application")
  With wrdApp
    .Documents.Open (s)
    .Selection.MoveDown Count:=11 ' не пойму что это.
    .Selection.TypeText Text:="текст текст текст"
    .ActiveDocument.Save
    .Visible = True
    .Activate
  End With
End Sub
или так (вставиться содержимое ячейки A1):
Код:
Sub writeWORD()
  [A1].Copy
  s = ThisWorkbook.Path & "\doс.doc" ' по умолчанию файл Ворд в тоже папке. или поменяйте путь
  Dim wrdApp As Object: Set wrdApp = CreateObject("Word.Application")
  With wrdApp
    .Documents.Open (s)
    .Selection.PasteSpecial
    .ActiveDocument.Save
    .Visible = True
    .Activate
  End With
End Sub

Последний раз редактировалось Maxx; 02.04.2010 в 15:06.
Maxx вне форума Ответить с цитированием
Старый 05.04.2010, 04:46   #3
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

все работает, если убрать строчку
Код:
.Activate
а еще такой вопрос: как после открытия докумета word перейти на закладку в нем? использовал такой код:
Код:
Dim f As String
f = "файл"
    With CreateObject("word.application")
    Set x = ThisWorkbook.Sheets(1)
        .documents.Open (f)
        .Visible = True
        .Selection.Goto What:=wdGoToBookmark, Name:="по_строит_уч"
        .Selection.TypeText Text:=x.Range("K2").Value
    End With
Но word выдает ошибку: Данная закладка не существует. Тот же код в word'е работает без ошибок
maksim_serg вне форума Ответить с цитированием
Старый 05.04.2010, 09:35   #4
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

нашел ткой вариант:
Код:
.ActiveDocument.Bookmarks("по_строит_уч").Select
          .Selection.InsertAfter x.Range("K2").Value
maksim_serg вне форума Ответить с цитированием
Старый 05.04.2010, 09:56   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Но word выдает ошибку: Данная закладка не существует. Тот же код в word'е работает без ошибок
Может, потому, что Word знает, чему равна константа wdGoToBookmark, а ваш макрос - не знает?
(библиотека Word ведь не подключена к проекту, судя по тому, что используется позднее связывание)

Цитата:
нашел ткой вариант:
Можно так попробовать:

Код:
Sub test()
    Dim f As String
    f = "ПОЛНЫЙ ПУТЬ К ФАЙЛУ"
    Set x = ThisWorkbook.Sheets(1)
    With CreateObject("word.application")
        .Visible = True
        With .documents.Open(f)
            .Bookmarks("по_строит_уч").Range.Text = x.Range("K2")
            .Bookmarks("по_строит_уч2").Range.Text = x.Range("K3")
            .Bookmarks("по_строит_уч3").Range.Text = x.Range("K4")
            .Save    ' сохраняем документ
        End With
        .Quit ' закрываем Word
    End With
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 05.04.2010, 10:14   #6
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

выдал ошибку: 438 - "Объект не поддерживает данный метод" (или что-то вроде этого - не знаю английского)
maksim_serg вне форума Ответить с цитированием
Старый 05.04.2010, 10:47   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
выдал ошибку: 438 - "Объект не поддерживает данный метод" (или что-то вроде этого - не знаю английского)
Не поленился, проверил - создав вордовский документ с одноимёнными закладками, - ВСЁ РАБОТАЕТ.
(WinXP, Office 2003)

Код:
Sub test()
    Dim f As String
    f = "C:\Documents and Settings\Admin\Рабочий стол\Документ Microsoft Word.doc"
    Set x = ThisWorkbook.Sheets(1)
    'Dim doc As Word.Document, WA As Word.Application ' если подключена библиотека word
    Set WA = CreateObject("word.application")
    With WA
        .Visible = True
        With .documents.Open(f)
            .Bookmarks("по_строит_уч").Range.Text = x.Range("K2")
            .Bookmarks("по_строит_уч2").Range.Text = x.Range("K3")
            .Bookmarks("по_строит_уч3").Range.Text = x.Range("K4")
            .Save    ' сохраняем документ
        End With
        .Quit ' закрываем Word
    End With
End Sub

Ошибка может появляться, если хотя бы одной из закладок нет в документе.
EducatedFool вне форума Ответить с цитированием
Старый 05.04.2010, 13:22   #8
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

и все таки выдает ошибку. или руки кривые.
буду пользоваться:
Код:
.ActiveDocument.Bookmarks("по_строит_уч").Select
.Selection.InsertAfter x.Range("K2").Value
maksim_serg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel и Word Foxx Microsoft Office Excel 10 15.03.2010 17:30
из Excel в Word Svetlana85 Microsoft Office Word 8 17.01.2010 19:49
Excel Word C# Cpluser Общие вопросы .NET 3 14.12.2009 21:48
Из word в Excel Biosasha Microsoft Office Word 0 15.02.2007 22:32