Пытаюсь реализовать этот макрос -Меняю число каждый раз, когда печатаю.
В настоящее время я пытаюсь использовать макрос для изменения номера счета-фактуры при печати партии.
***Sub PrintCopies_ActiveSheet()
Dim CopiesCount As Long
Dim copynumber As Long
CopiesCount = Application.InputBox("How many copies do you want?", Type:=1)
'Now the program wants you to input how many pages you like to print.
'You can input 100 here.
For copynumber = 1 To CopiesCount
With ActiveSheet
.Range("E1").Value = copynumber 'I assume your invoice number is in cell E1.
.PrintOut 'Print the sheet
End With
Next copynumber
End Sub***
Он работает как есть, но я хочу распечатать пакет счетов, начиная с номера счета 400. Когда я пытаюсь изменить эту часть
For copynumber = 1 To CopiesCount
к
For copynumber = 400 To CopiesCount
это не работает. (Это изменение было предложено в комментарии к принятому ответу в связанном вопросе.)
Как изменить код, чтобы иметь возможность указать начальный номер счета?
решение1
Попробуйте этот измененный код. Я добавил две новые переменные ( start
и limit
), которые упрощают настройку этого кода для печати номеров счетов-фактур. Теперь есть второй запрос пользователя для начального номера счета-фактуры. limit
рассчитывается из двух пользовательских вводов.
Sub PrintCopies_ActiveSheet()
Dim CopiesCount As Long
Dim copynumber As Long
Dim start as Variant, limit As Long
CopiesCount = Application.InputBox("How many copies do you want?", Type:=1)
'Now the program wants you to input how many pages you like to print.
'You can input 100 here.
'starting invoice number
start = Application.InputBox("Start sequence at what invoice number?", Type:=1)
'This gives you the ability to cancel the macro by clicking Cancel.
If start = "False" Then
Exit Sub
End If
limit = start + CopiesCount - 1 'last invoice number to print
For copynumber = start To limit
With ActiveSheet
.Range("E1").Value = copynumber 'I assume your invoice number is in cell E1.
.PrintOut 'Print the sheet
End With
Next copynumber
End Sub