So ändern Sie die Anfangsrechnungsnummer in einer VBA-Schleife

So ändern Sie die Anfangsrechnungsnummer in einer VBA-Schleife

Der Versuch, dieses Makro zu implementieren -Bei jedem Drucken eine Nummer ändern.

Ich versuche derzeit, beim Stapeldrucken ein Makro zum Ändern einer Rechnungsnummer zu verwenden.

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

Es funktioniert so wie es ist, aber ich möchte einen Stapel Rechnungen drucken, beginnend mit der Rechnungsnummer 400. Wenn ich versuche, diesen Teil zu ändern

For copynumber = 1 To CopiesCount

Zu

For copynumber = 400 To CopiesCount

es funktioniert nicht. (Diese Änderung wurde in einem Kommentar zur akzeptierten Antwort in der verlinkten Frage vorgeschlagen.)

Wie kann ich den Code ändern, um die erste Rechnungsnummer angeben zu können?

Antwort1

Probieren Sie diesen geänderten Code aus. Ich habe zwei neue Variablen ( startund limit) hinzugefügt, mit denen dieser Code leichter zum Drucken von Rechnungsnummern angepasst werden kann. Es gibt jetzt eine zweite Benutzerabfrage für die erste Rechnungsnummer. limitwird aus den beiden Benutzereingaben berechnet.

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

verwandte Informationen