создан 1 лист с 4 этикетками где в полях А10, А20, А30, А40 есть формула которая вычисляет номер этикетки (1,2,3,4), Если при печати я задаю печать для примера 5 копий я получаю 5 одинаковах листов, каждый лист с номерами 1, 2, 3, 4. Какое то время меня это устраивало. Сейчас появилась необходимость чтобы нумерация была сквозной, то есть при печати 2-ой копии листа номера были 5, 6 , 7, 8 ( в поле А10 должно быть 5 а не 1 остальные номера будут в порядке т.к. работает формула), в 3-ей копии листа номер должен начинаться с 9 (9, 10 , 11, 12) и т.д. Как это можно сделать ?
создан 1 лист с 4 этикетками где в полях А10, А20, А30, А40 есть формула которая вычисляет номер этикетки (1,2,3,4), Если при печати я задаю печать для примера 5 копий я получаю 5 одинаковах листов, каждый лист с номерами 1, 2, 3, 4. Какое то время меня это устраивало. Сейчас появилась необходимость чтобы нумерация была сквозной, то есть при печати 2-ой копии листа номера были 5, 6 , 7, 8 ( в поле А10 должно быть 5 а не 1 остальные номера будут в порядке т.к. работает формула), в 3-ей копии листа номер должен начинаться с 9 (9, 10 , 11, 12) и т.д. Как это можно сделать ? gbi01
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim i&, n&, m& n = 1: m = InputBox("Number of copies?", , 1) If m > 0 Then Application.EnableEvents = 0 For i = 1 To m ActiveSheet.[a10] = n ActiveSheet.PrintOut: n = n + 4 Next Application.EnableEvents = True Cancel = True End Sub
[/vba]
В модуль книги: [vba]
Код
Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim i&, n&, m& n = 1: m = InputBox("Number of copies?", , 1) If m > 0 Then Application.EnableEvents = 0 For i = 1 To m ActiveSheet.[a10] = n ActiveSheet.PrintOut: n = n + 4 Next Application.EnableEvents = True Cancel = True End Sub
Sub Макрос() Dim i As Long, j As Long num_sheets = InputBox("Введите количество листов", "Ввод количества листов", 1) If IsNumeric(num_sheets) Then For i = 1 To num_sheets For j = 1 To 4 ActiveSheet.Cells(j * 10, 1) = j + 4 * (i - 1) ActiveSheet.PrintOut Next j Next i End If End Sub
[/vba]
Можно еще так [vba]
Код
Sub Макрос() Dim i As Long, j As Long num_sheets = InputBox("Введите количество листов", "Ввод количества листов", 1) If IsNumeric(num_sheets) Then For i = 1 To num_sheets For j = 1 To 4 ActiveSheet.Cells(j * 10, 1) = j + 4 * (i - 1) ActiveSheet.PrintOut Next j Next i End If End Sub