Страницы: 1
RSS
Объединение doc файлов в определенном порядке
 
Здравствуйте. Помогите решить вопрос.
На листе эксель - в столбце располагаются три адреса файлов doc (три файла 111.doc, 222.doc, 333.doc).

Как макросом провести объединение doc файлов из столбца в определенном порядке ?
(общий файл "Общий.doc", должен сохраниться в ту же папку что и файл с макросом. )  
 
Как раз пример кода работы с Word-документами из Excel. Запишите макрорекордером (в Word!) нужные действия с документами и объедините/переработайте с примером по ссылке
КАК ИЗ EXCEL ОБРАТИТЬСЯ К ДРУГОМУ ПРИЛОЖЕНИЮ
Согласие есть продукт при полном непротивлении сторон
 
Sanja, в статье приводится как я понял - вставка из экселя в ворд или из ворда в эксель.
Я же имел ввиду - создание документа doc, копирование в него файлов doc в нужном порядке, закрытие документа doc.
 
Цитата
Dim Ozerov написал: Я же имел ввиду...
Я же Вам написал
Цитата
Sanja написал: Запишите макрорекордером (в Word!) нужные действия ... и объедините/переработайте с примером по ссылке
Согласие есть продукт при полном непротивлении сторон
 
Sanja, в ворде макрорекордер как-то по-другому работает.
Записал макрос в ворде, но он ничего не копирует.
Код
 
Sub Объединение()

    Documents.Add DocumentType:=wdNewBlankDocument
    ActiveDocument.SaveAs FileName:="Общий.doc", FileFormat:=wdFormatDocument, _
         LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _
        :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
        SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
        False
     RecentFiles(4).Open
    Selection.WholeStory
    Selection.Copy
    Windows("Общий.doc").Activate
    Windows("222.doc").Activate
    ActiveDocument.Close
    RecentFiles(4).Open
    Selection.WholeStory
    Selection.Copy
    Windows("Общий.doc").Activate
    Windows("111.doc").Activate
    ActiveDocument.Close
    RecentFiles(4).Open
    Selection.WholeStory
    Selection.Copy
    Windows("Общий.doc").Activate
    Windows("333.doc").Activate
    ActiveDocument.Close
    ActiveDocument.Save
    ActiveDocument.Close
End Sub
Видимо потому что  Selection.Copy - надо как-то задавать - выделение по странице или весь документ.
Макрорекодер воспринимает  Selection.Copy - как самостоятельное выделение мышью.
 
Так у Вас вопрос больше по VBA Word'а чем по Excel. Ищите тематические форумы
Согласие есть продукт при полном непротивлении сторон
 
От Дмитрия (The_Prist)
Код
Sub MergeFiles()
    Dim avFiles, lr As Long
    Dim docAct As Document, docNow As Document

    With Application.FileDialog(msoFileDialogFilePicker)
        .InitialFileName = "*.doc*"
        .AllowMultiSelect = True
        If .Show = False Then Exit Sub
        Set docAct = ActiveDocument
        For lr = 1 To .SelectedItems.Count
            Set docNow = Documents.Open(.SelectedItems(lr))
            docNow.Range.Copy
            docAct.Range(docAct.Range.End - 1).Paste
            docAct.Range(docAct.Range.End - 1).InsertBreak Type:=0
            docNow.Close 0
        Next lr
    End With
End Sub
А тему наверно в курилку
 
...
Изменено: Dim Ozerov - 11.08.2017 11:38:50
 
Бахтиёр, а не подскажете - как работает этот скрипт.
Он вызывает окошко, где предлагает выбрать word-документ.
Если выбрать какой-либо файл - то макрос открывает этот файл и выдает ошибку (Run-time error `-2147417848 (80010108)` Automation error Вызванный объект был отключен от клиентов)

Подключена библиотека Microsoft Word 15.0 Object Library
В чем может быть ошибка?
 
Цитата
Dim Ozerov написал:
Записал макрос в ворде
Dim Ozerov, Вам нужен макрос в Word?
 
Код
Sub мяу()
    Dim wa As Object, wd As Object, wdt As Object
    Dim cel As Range
    Set wa = CreateObject("Word.Application")
    wa.Visible = True
    Set wd = wa.documents.Add
    For Each cel In ThisWorkbook.Sheets(3).Range("D4:D6")
        Set wdt = wa.documents.Open(cel.Value)
        wdt.Range.Copy
        wdt.Close False
        wa.Selection.Paste
        wa.Selection.TypeParagraph

    Next
    wd.SaveAs2 ThisWorkbook.Path & "\Мяу.doc", 0
    wd.Close False
    wa.Quit False
    Set wa = Nothing: Set wd = Nothing
End Sub
 
RAN, макрос в целом работает, то есть группирует все вордовские файлы в один документ - под названием "Документ1".
Но вот сохранить его как "Мяу.doc" - не может.

Выдает в этом месте ошибку : " Run-time error `438` Object doesn`t support this property or method "
И подсвечивает строчку кода     wd.SaveAs2 ThisWorkbook.Path & "\Мяу.doc", 0  
Изменено: Megamen2 - 11.08.2017 15:31:08
 
Вариантов, собственно, два.
1. Установить Word, где есть метод SaveAs2.
2. Использовать метод SaveAs.
 
Цитата
RAN написал:
2. Использовать метод SaveAs.
Метод SaveAs - работает
Изменено: Megamen2 - 11.08.2017 16:38:16
 
RAN, все заработало.
Спасибо за ответ.
Страницы: 1
Читают тему
Наверх