Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Перенос макроса объединения файлов word в шаблон normal.dot - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Перенос макроса объединения файлов word в шаблон normal.dot
maximich Дата: Пятница, 12.11.2021, 14:43 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 1 ±
Замечаний: 0% ±

Excel 2013
Уважаемые форумчане, здравствуйте!
Помогите пожалуйста с решением проблемы.
В моем рабочем документе word есть макрос для объединения файлов word в один файл.
Когда я его запускаю из рабочего файла (в котором он сохранен), он отлично работает, но как только я его перенес в шаблон word - normal.dotm
он выдает следующую ошибку:





Сам код макроса следующего вида:
[vba]
Код
Sub Объединение_файлов()
    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
            If lr < .SelectedItems.Count Then docAct.Range(docAct.Range.End - 1).InsertBreak Type:=wdSectionBreakNextPage
            docNow.Close 0
        Next lr
    End With
End Sub
[/vba]

Заранее благодарю!
 
Ответить
СообщениеУважаемые форумчане, здравствуйте!
Помогите пожалуйста с решением проблемы.
В моем рабочем документе word есть макрос для объединения файлов word в один файл.
Когда я его запускаю из рабочего файла (в котором он сохранен), он отлично работает, но как только я его перенес в шаблон word - normal.dotm
он выдает следующую ошибку:





Сам код макроса следующего вида:
[vba]
Код
Sub Объединение_файлов()
    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
            If lr < .SelectedItems.Count Then docAct.Range(docAct.Range.End - 1).InsertBreak Type:=wdSectionBreakNextPage
            docNow.Close 0
        Next lr
    End With
End Sub
[/vba]

Заранее благодарю!

Автор - maximich
Дата добавления - 12.11.2021 в 14:43
Pelena Дата: Пятница, 12.11.2021, 15:28 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19409
Репутация: 4558 ±
Замечаний: ±

Excel 365 & Mac Excel
Попробуйте так
[vba]
Код
Sub Объединение_файлов()
    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
        Documents.Add
        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
            If lr < .SelectedItems.Count Then docAct.Range(docAct.Range.End - 1).InsertBreak Type:=wdSectionBreakNextPage
            docNow.Close 0
        Next lr
    End With
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПопробуйте так
[vba]
Код
Sub Объединение_файлов()
    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
        Documents.Add
        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
            If lr < .SelectedItems.Count Then docAct.Range(docAct.Range.End - 1).InsertBreak Type:=wdSectionBreakNextPage
            docNow.Close 0
        Next lr
    End With
End Sub
[/vba]

Автор - Pelena
Дата добавления - 12.11.2021 в 15:28
maximich Дата: Пятница, 12.11.2021, 15:49 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 37
Репутация: 1 ±
Замечаний: 0% ±

Excel 2013
Попробуйте так

Все отлично работает!
Спасибо!
 
Ответить
Сообщение
Попробуйте так

Все отлично работает!
Спасибо!

Автор - maximich
Дата добавления - 12.11.2021 в 15:49
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!