VBA ループで請求書の開始番号を変更する方法

VBA ループで請求書の開始番号を変更する方法

このマクロを実装しようとしています -印刷するたびに数字を変更する

現在、バッチ印刷時に請求書番号を変更するマクロを使用しようとしています。

***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

この修正されたコードを試してください。請求書番号の印刷用にこのコードをより簡単にカスタマイズできるように、2 つの新しい変数 (startlimit) を追加しました。これで、開始請求書番号を入力するための 2 番目のユーザー プロンプトが表示されます。は、limit2 つのユーザー入力から計算されます。

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

関連情報