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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2010, 22:51   #1
barbus
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 37
По умолчанию Открываем Word из Excel

Задача заключается вот в чем.
Есть два файла Excel и Word в одной папке. В файле ворда есть шаблон текста с ссылка из ячеек Excel-а.Файл Excel-а открыт а ворд закрыт, в ячейках есть данные которые отражаются в документе ворд. После того как будут изменены данные, надо с помощью кнопки из документа Excel открыть документ ворд и напечатать страницы введенные в макрос кнопки, после чего документ ворд снова закроется.

Как из Excel с помощью макроса открыть файл Word-а и задать параметры для печати.

Последний раз редактировалось barbus; 19.02.2010 в 23:14.
barbus вне форума Ответить с цитированием
Старый 20.02.2010, 16:36   #2
bdfy
Форумчанин
 
Регистрация: 12.11.2009
Сообщений: 258
По умолчанию

Код:
Public Sub open_word(myDoc As String)

    Dim WordApp As Object
    Dim wrdDoc As Object
    Dim tmpDoc As Object
    Dim WDoc As String
'   Dim myDoc As String
'    myDoc = "óñòîé÷èâîñòü-àâòî"
    WDoc = ThisWorkbook.Path & "\" & myDoc & ".doc"
'    Debug.Print WDoc
    Err.Number = 0
    On Error Resume Next

    Set WordApp = GetObject(, "Word.Application")
 
'   Debug.Print "WordApp " & WordApp
   
    'If WordApp Is Nothing Then
    If Err.Number <> 0 Then
         ' no current word application
        Set WordApp = CreateObject("Word.application")
        Set wrdDoc = WordApp.Documents.Open(WDoc)
   ' WordApp.Visible = True
    Else
         ' word app running
        For Each tmpDoc In WordApp.Documents
            If StrComp(tmpDoc.FullName, WDoc, vbTextCompare) = 0 Then
                 ' this is your doc
                Set wrdDoc = tmpDoc
                Exit For
            End If
        Next
        If wrdDoc Is Nothing Then
             ' not open
            Set wrdDoc = WordApp.Documents.Open(WDoc)
        End If
    End If
    WordApp.Visible = True
WordApp.DisplayAlerts = False
WordApp.ActiveWindow.Selection.WholeStory
'open_word = WordApp
End Sub
Код:
wordfile = "имя без расширения"

Call open_word(wordfile)
Set WordApp = GetObject(, "Word.Application")

    WordApp.Windows(wordfile & ".doc").Activate
     WordApp.ActiveWindow.Selection.WholeStory
    
    WordApp.ActiveWindow.Selection.Fields.Update
        With WordApp
               .ActiveDocument.PrintOut
       End With
как то так я обычно делаю )
bdfy вне форума Ответить с цитированием
Старый 20.02.2010, 16:55   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Такой метод для обработки 1000 документов не подойдет.
На каждое открытие и обработку несколько секунд ,в итоге больше часа работы,не считая всего остального
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 20.02.2010, 17:37   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

bdfy Прошу прощения,ответил не в ту тему.
Рядом очень похожая.Попутал
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 21.02.2010, 14:43   #5
barbus
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 37
По умолчанию

Прошу посматрите в закрепленном файле, код не работает.
Там я перевел на русский те кнопки которые будут работать под этот код.

В файле есть форма настройки печати, как сделать чтобы, при активации документа Word данная форма была бы активна на этом документе (посмотрите код Forma_2, и Forma_5 и паймете почему)

Код:
Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
ActiveSheet.PrintOut from:=TextBox1.Value, To:=TextBox1.Value, copies:=TextBox3.Value
Forma_5.Show
Else:
ActiveSheet.PrintOut from:=TextBox1.Value, To:=TextBox1.Value, copies:=TextBox3.Value
End If
Sheet5.Select
Unload Me
 End Sub
код выделенный красным думаю менять для ворда, пока не знаю как чтобы работало и для Excel-а и для Word-а



Еще как можно сделать так чтобы sheet "Hajtararagir" сохранилься в том же каталоге как отдельный файл под именем "Номер"-а.
Вложения
Тип файла: zip fajl.zip (189.8 Кб, 22 просмотров)

Последний раз редактировалось barbus; 21.02.2010 в 14:50.
barbus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из 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 Юрийpirs2008 Microsoft Office Excel 2 31.12.2008 05:11
Из word в Excel Biosasha Microsoft Office Word 0 15.02.2007 22:32