Страница 1 из 1

Добавление страниц

Добавлено: 28 май 2009, 12:14
Screame
Помогите пожалуйста!!! Есть книга Excel в которой находиться инвентарная опись, количество страниц в которой наперед неизвестно, у меня есть код:

Код: Выделить всё

Sub Main()
    Application.ScreenUpdating = False: Application.DisplayAlerts = False
    Application.Calculation = xlCalculationManual

    Dim ra As Range: Set ra = [таблица]
    Dim sh As Worksheet: Set sh = ThisWorkbook.Worksheets("ревізія")
    sh.Activate: ActiveWindow.View = xlPageBreakPreview
    Dim newra As Range: Set newra = sh.HPageBreaks(2).Location.Resize(ra.Rows.Count, ra.Columns.Count)
    newra.EntireRow.Insert: Set newra = sh.HPageBreaks(2).Location.Resize(ra.Rows.Count, ra.Columns.Count)
    ra.Copy: newra.PasteSpecial xlPasteAll

    For i = 1 To ra.Rows.Count
        newra.Rows(i).RowHeight = ra.Rows(i).RowHeight
    Next i
    Set sh.HPageBreaks(3).Location = newra.Cells(newra.Cells.Count).EntireRow.Cells(1).Offset(1)

    Application.ScreenUpdating = True: Application.DisplayAlerts = True
    Application.Calculation = xlCalculationAutomatic
End Sub
при помощи которого добавляются страницы, но все добавлятся только после второй страницы можно ли что нибуть зделать с этим кодом чтобы страницы добавлялись последовательно одна за другой (имеется ввиду чтобы после 2 шла 3, после 4 шла 5 и т.д.). К сообщению прилагаю и саму книгу. Заранее спасибо!

Re: Добавление страниц

Добавлено: 28 май 2009, 18:04
Teslenko_EA
Здравствуйте Screame.
проблема решается подсчетом существующих "страниц" :

Код: Выделить всё

    Dim j As Integer
...
   [B]j[/B] = sh.HPageBreaks.Count
...
    Set newra = sh.HPageBreaks([B]j[/B]).Location.Resize(ra.Rows.Count, ra.Columns.Count)
...
    Set newra = sh.HPageBreaks([B]j[/B]).Location.Resize(ra.Rows.Count, ra.Columns.Count)
...
    Set sh.HPageBreaks([B]j[/B] + [B]1[/B]).Location = newra.Cells(newra.Cells.Count).EntireRow.Cells(1).Offset(1)
Евгений.

Re: Добавление страниц

Добавлено: 28 май 2009, 18:36
Screame
Спасибо большое, все работает просто супер!!!