Прескочи на основното съдържание

 Как автоматично да увеличавам стойността на клетката след всяко отпечатване?

Автор: Xiaoyang Последна промяна: 2020-06-03

Да предположим, че имам страница от работен лист, която трябва да бъде отпечатана в 100 копия, клетката A1 е номерът на проверката Company-001, сега бих искал числото да се увеличава с 1 след всяка разпечатка. Това означава, че когато отпечатам второто копие, номерът автоматично ще бъде увеличен до Company-002, третото копие, номерът ще бъде Company-003… сто копия, номерът ще бъде Company-100. Има ли някакъв трик за бързо и евентуално решаване на този проблем в Excel?

Автоматично увеличаване на стойността на клетката след всяко отпечатване с VBA код


стрелка син десен балон Автоматично увеличаване на стойността на клетката след всяко отпечатване с VBA код

Обикновено няма директен начин да решите тази задача в Excel, но тук ще създам VBA код, за да се справя с нея.

1. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

2. Щракнете Поставете > Модулии поставете следния код в Модули Window.

VBA код: Автоматично увеличаване на стойността на клетката след всеки печат:

Sub IncrementPrint()
'updateby Extendoffice
    Dim xCount As Variant
    Dim xScreen As Boolean
    Dim I As Long
    On Error Resume Next
LInput:
    xCount = Application.InputBox("Please enter the number of copies you want to print:", "Kutools for Excel")
    If TypeName(xCount) = "Boolean" Then Exit Sub
    If (xCount = "") Or (Not IsNumeric(xCount)) Or (xCount < 1) Then
        MsgBox "error entered, please enter again", vbInformation, "Kutools for Excel"
        GoTo LInput
    Else
        xScreen = Application.ScreenUpdating
        Application.ScreenUpdating = False
        For I = 1 To xCount
            ActiveSheet.Range("A1").Value = " Company-00" & I
            ActiveSheet.PrintOut
        Next
        ActiveSheet.Range("A1").ClearContents
        Application.ScreenUpdating = xScreen
    End If
End Sub

3. След това натиснете F5 за да изпълните този код, и се появява поле за подкана, за да ви напомни да въведете броя копия, които искате да отпечатате на текущия работен лист, вижте екранната снимка:

doc увеличение при печат 1

4. Щракнете OK и текущият ви работен лист се отпечатва сега, като в същото време отпечатаните работни листове са номерирани Company-001, Company-002, Company-003… в клетка A1, както ви е необходимо.

Забележка: В горния код клетката A1 ще бъдат вмъкнати поредните номера, които сте поръчали, и оригиналната стойност на клетката A1 ще бъдат изчистени. И "Фирма-00” е поредният номер, можете да ги промените според вашите нужди.

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (52)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I need serial numbers like IA1-01,03,05,07...........pls help me
This comment was minimized by the moderator on the site
How would I add code to print duplex on the VBA below. thanks in advance.

Sub IncrementPrint()
'updateby Extendoffice
Dim xCount As Variant
Dim xScreen As Boolean
Dim I As Long
On Error Resume Next
LInput:
xCount = Application.InputBox("Please enter the number of copies you want to print:", "Kutools for Excel")
If TypeName(xCount) = "Boolean" Then Exit Sub
If (xCount = "") Or (Not IsNumeric(xCount)) Or (xCount < 1) Then
MsgBox "error entered, please enter again", vbInformation, "Kutools for Excel"
GoTo LInput
Else
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
For I = 1 To xCount
ActiveSheet.Range("B2").Value = "0" & I
ActiveSheet.PrintOut
Next
ActiveSheet.Range("B2").ClearContents
Application.ScreenUpdating = xScreen
End If
End Sub

Sub IncrementPrint_Reinstall()
Dim xMNWS As Worksheet
On Error GoTo EMarkNumberSheet
Set xMNWS = Sheets("IncrementPrint_MarkNumberSheet")
EMarkNumberSheet:
If Not xMNWS Is Nothing Then
Application.DisplayAlerts = False
xMNWS.Visible = xlSheetHidden
xMNWS.Delete
Application.DisplayAlerts = True
End If
End Sub
This comment was minimized by the moderator on the site
你好,如我要打印 由C001 - C010,但打卯出來後,第10份都變成 C0010, 請問如何解決
This comment was minimized by the moderator on the site
Hello, Tony,
To solve your problem, please apply the below VBA code:
Sub IncrementPrint_Num()
'Updateby Extendoffice
Dim xCount As Variant
Dim xScreen As Boolean
Dim I As Long
Dim xStr As String
Dim xInt As Integer
On Error Resume Next
xStr = "Company-" 'prefix text
xInt = 0   'start number
LInput:
xCount = Application.InputBox("Please enter the number of copies you want to print:", "Kutools for Excel")
If TypeName(xCount) = "Boolean" Then Exit Sub
If (xCount = "") Or (Not IsNumeric(xCount)) Or (xCount < 1) Then
MsgBox "error entered, please enter again", vbInformation, "Kutools for Excel"
GoTo LInput
Else
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
For I = 1 To xCount
xInt = xInt + 1
If xInt < 10 Then
    ActiveSheet.Range("A1").Value = xStr & "00" & xInt
ElseIf xInt > 9 And xInt < 100 Then
    ActiveSheet.Range("A1").Value = xStr & "0" & xInt
Else
    ActiveSheet.Range("A1").Value = xStr & xInt
End If
ActiveSheet.PrintOut
Next
ActiveSheet.Range("A1").ClearContents
Application.ScreenUpdating = xScreen
End If
End Sub

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Hello,

Is there a way that you can code pressing the enter button after each number change?

Thank you in advance
This comment was minimized by the moderator on the site
Hello Ariane,

I am trying your requirement of 4 coupons or any no. of places to be incremented on same page and continue to next page. However in the meanwhile, if you have 2 coupons on one page then the below code might help you!

If you have 2 places on one page (like 2 Coupons or 2 templates / 2 vouchers etc.), then you can try using the below code. (Assuming your 1st barcode and 2nd barcode are in cells "A1" and "A20" of the same page, this code will increment values like Company-001 and Company-002 on first page and Company-003 and Company-004 on second page and so on. You can edit the cell no. and Company name as you want in lines 20, 21, 23, 24 and 28,29 of the code.

It will also ask you to enter the starting number and ending number (Thanks to geniusman for this part of code). So for example your starting no. is 1 and ending no. 8, it will print 4 pages of 1,2 on 1st page, 3,4 on 2nd page, 5,6 on 3rd page and finally 7,8 on 4th page. Hope it helps you or anyone who is looking for this type of need/requirement.

Modified Code:
-----------------------------------------------------------
Sub IncrementPrint()
'updateby Extendoffice
Dim xEnd As Variant
Dim xStart As Variant
Dim xScreen As Boolean
Dim I As Long
On Error Resume Next
LInput:
xStart = Application.InputBox("Please enter the first number:", "Kutools for Excel")
xEnd = Application.InputBox("Please enter the last number:", "Kutools for Excel")
If TypeName(xCount) = "Boolean" Then Exit Sub
If (xStart = "") Or (Not IsNumeric(xStart)) Or (xStart < 1) Then
MsgBox "Error entered, please enter again", vbInformation, "Kutools for Excel"
GoTo LInput
Else
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
For I = xStart To xEnd
If I Mod 2 = 0 Then
ActiveSheet.Range("A1").Value = " Company-00" & I + 1
ActiveSheet.Range("A20").Value = " Company-00" & I
Else
ActiveSheet.Range("A20").Value = " Company-00" & I + 1
ActiveSheet.Range("A1").Value = " Company-00" & I
ActiveSheet.PrintOut
End If
Next
ActiveSheet.Range("A1").ClearContents
ActiveSheet.Range("A20").ClearContents
Application.ScreenUpdating = xScreen
End If
End Sub

---------------------------------------------------------------------------------------------------------
Thanks,
RNS
This comment was minimized by the moderator on the site
Hello RNS,Thank you for your share. If you have four coupons on the same page and continue to next page, please paste the following code in the Module Window.
Public Sub IncrementPrint()
'updateby Extendoffice
Dim resp As Variant, scr As Boolean, i As Long, j As Long

On Error Resume Next
resp = Application.InputBox("Please enter the number of copies you want to print:", "Kutools for Excel")
On Error GoTo 0

If resp = False Then Exit Sub
If resp < 1 Or resp > 100 Then
MsgBox "error entered, please enter again", vbInformation, "Kutools for Excel"
Exit Sub
End If

scr = Application.ScreenUpdating
Application.ScreenUpdating = False
j = 0
For i = 1 To resp
ActiveSheet.Range("A1").Value2 = " Company-00" & i + 0 + j
ActiveSheet.Range("A2").Value2 = " Company-00" & i + 1 + j
ActiveSheet.Range("A3").Value2 = " Company-00" & i + 2 + j
ActiveSheet.Range("A4").Value2 = " Company-00" & i + 3 + j
ActiveSheet.PrintOut
j = j + 3
Next i
ActiveSheet.Range("A1,A2,A3,A4").ClearContents
Application.ScreenUpdating = scr
End Sub

For example, if you want to 2 copies, then the printed paper 1 will be Company-001,Company-002,Company-003,Company-004;and the the printed paper 2 will be Company-005,Company-006,Company-007,Company-008. Please have a try. Have a nice day.
Sincerely,Mandy
This comment was minimized by the moderator on the site
If I have 4 coupons per sheets, what do I have to modify on this code so the number will be incremented between the coupons on the same sheet as well as from every page it prints (i.e: page 1 has coupons # 1 to 4, page 2 has coupons from 5 to 8, etc.)
This comment was minimized by the moderator on the site
Hello Ariane,
Gald to help. If you have four coupons on the same page and continue to next page, please paste the following code in the Module Window.

Public Sub IncrementPrint()
'updateby Extendoffice
Dim resp As Variant, scr As Boolean, i As Long, j As Long

On Error Resume Next
resp = Application.InputBox("Please enter the number of copies you want to print:", "Kutools for Excel")
On Error GoTo 0

If resp = False Then Exit Sub
If resp < 1 Or resp > 100 Then
MsgBox "error entered, please enter again", vbInformation, "Kutools for Excel"
Exit Sub
End If

scr = Application.ScreenUpdating
Application.ScreenUpdating = False
j = 0
For i = 1 To resp
ActiveSheet.Range("A1").Value2 = " Company-00" & i + 0 + j
ActiveSheet.Range("A2").Value2 = " Company-00" & i + 1 + j
ActiveSheet.Range("A3").Value2 = " Company-00" & i + 2 + j
ActiveSheet.Range("A4").Value2 = " Company-00" & i + 3 + j
ActiveSheet.PrintOut
j = j + 3
Next i
ActiveSheet.Range("A1,A2,A3,A4").ClearContents
Application.ScreenUpdating = scr
End Sub

For example, if you want to 2 copies, then the printed paper 1 will be Company-001,Company-002,Company-003,Company-004;and the the printed paper 2 will be Company-005,Company-006,Company-007,Company-008. Please have a try. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Hello Ariane,
Please see my above post 0n 24-Feb-2022
Thanks,RNS
This comment was minimized by the moderator on the site
how can i count on from say number 779?  Thank you for sharing this code and any advice you can offer.
This comment was minimized by the moderator on the site
HIAfter doing the formula and selecting F5 I just get pop up Go to Print Area and then have to put in a reference  and I have tried everything but your pop up asking for how many prints does not come up? Helppppp please
This comment was minimized by the moderator on the site
press F5 in the VB window not the excel window.
This comment was minimized by the moderator on the site
God bless you and your soul man! you are a miracle :))
This comment was minimized by the moderator on the site
Thankyou very much for sharing above code. It is very helpful for everyone. Can we add some code more for increasing 8 numbers instead of 1 after prints?Waiting for your reply. Thanks
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations