Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Необходимо после каждого листа добавить новый лист

Автор Alex12345, 10.11.2018, 20:38:45

« назад - далее »

Alex12345

Всем привет!
Как в приведенном примере (см.прикр.файл - ТЕКСТ_ПРИМЕР) сделать следующее: необх-мо с первого листа и последующие листы 2,3 и т.д. добавлять новые листы ?
В данном примере доб.только в конце листы.
Option Explicit
Sub Vstavka()
Dim Count As Integer, i As Integer
Count = 10   'здесь задается количество вставляемых в документ страниц
For i = 1 To Count
Selection.EndKey Unit:=wdStory
Selection.InsertBreak Type:=wdPageBreak
Next i
End Sub

Дмитрий Щербаков(The_Prist)

Цитата: Alex12345 от 10.11.2018, 20:38:45с первого листа и последующие листы 2,3 и т.д. добавлять новые листы ?
Хотите после каждого имеющегося листа добавить пустой?
Наверное, как-то так должно получиться:
Sub Vstavka()
    Dim Count As Long, i As Long, lAllCnt As Long
    Count = 10   'здесь задается количество вставляемых в документ страниц
    With Selection
        lAllCnt = .Information(wdNumberOfPagesInDocument)
        If lAllCnt > Count Then
            i = lAllCnt - Count
            lAllCnt = lAllCnt - i + 1
        End If
       
        For i = lAllCnt To 2 Step -1
            .GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, name:=i
            .InsertBreak Type:=wdPageBreak
        Next
    End With
End Sub

я добавил проверку, если листов для вставки указано больше, чем есть в книге. В этом случае добавляется после каждого заполненного. Т.е. если листов в книге 5, а указано для вставки 10 - вставлено будет только 5.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Alex12345

При запуске макроса выходит сообщение:

Compile error:
Duplicate declaration in current scope.

Дмитрий Щербаков(The_Prist)

Ну это Вы уже сами смотрите где Вы вставили код так, что у Вас дублируется название процедуры. Наверняка мой код вставили сразу под своим, а название процедуры Vstavka изменить уже поленились. Советую изучить хотя бы основы работы с VBA, раз такая ошибка доставляет проблемы :)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Alex12345

#4
Да спасибо Дмитрий все получилось. А какие книги посоветуете почитать ? С чего  лучше начать ?

Дмитрий Щербаков(The_Prist)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Яндекс.Метрика Рейтинг@Mail.ru