-1

У меня есть лист Excel для печати набора из 3 страниц, который я использую для расписания. Мне нужен какой-то макрос, который может менять цифры после каждых трех напечатанных листов. Итак, первые три листа - 0001, а следующие три 0002 - следующие три 0003, и так далее.

Если возможно, мне нужно начинать с того места, где я остановился. Вот что я пробовал до сих пор:

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.
   For i = 1 To 3
    .PrintOut 'Print the sheet
End With
Next copynumber
End Sub

Пара проблем:

  1. Он не печатает лист три раза с одним и тем же номером
  2. Мне также нужно, чтобы число было нулем лидера (например, 0001, 0002 ... 000n)

Какие-либо решения?

1 ответ1

0

Вы уже заявили, что просто скопировали другой код, а не сделали это сами. Если вы продолжите идти по этому пути, вы заблудитесь, я рекомендую изучить небольшой код, который вам нужен.

Эта функция демонстрирует, как вы можете увеличивать число каждые 3 раза и как добавлять начальные нули. Я предположил, согласно вашему примеру (где вы написали (eg, 0001, 0002 ... 000n)), что вы всегда хотите 3 нуля впереди.

Sub doThis()

Dim page As Integer
page = 1

Dim pageToUse As String
pageToUse = "000" & page

Dim copyNumber As Integer
Dim copiesCount As Integer
copiesCount = 5

For copyNumber = 1 To copiesCount

    If copyNumber Mod 4 = 0 Then     'needs to be 4 as you start with 1
        pageToUse = "000" & page + 1
    End If

Next copyNumber

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .