2015-07-01 2 views
1

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

Есть ли способ добавить к существующему коду, чтобы каждый лист печатал определенное количество раз на листе? например, распечатать лист1 2 раза, распечатать лист2 1 раз и т. д., используя ссылку на ячейку на этом листе. Код

я для печати до сих пор:

Sub PrintSheets() 
Dim ws As Worksheet 
Dim arrWS() 
Dim I As Long 
    For Each ws In Worksheets 
     If ws.Range("A1") = "print" Then 
      ReDim Preserve arrWS(I) 
      arrWS(I) = ws.Name 
      I = I + 1 
     End If 
    Next ws 

    Sheets(arrWS).PrintOut 
End Sub 

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

ответ

1

Посмотрев на ответ Омара и мой предыдущий ответ, я думаю, что вам не нужен массив. Помещенный количество копий, которое требуется напечатать на каждом листе в ячейке A2:

Sub PrintSheets() 
Dim ws As Worksheet 

For Each ws In Worksheets 
    If ws.Range("A1") = "print" Then 
     ws.PrintOut Copies:= ws.Range("A2").Value2 
    End If 
Next ws 


End Sub 
1

Попробуйте

Sheets(arrWS).PrintOut Copies:=Range("A2").Value 
+0

Этот ответ является большим, гораздо лучше, чем мои предыдущие попытки, но я думаю, что это еще не закончена что касается эффективности, поэтому я собираюсь объединить ваш ответ в мою и внести окончательные изменения. Хорошая работа! – puzzlepiece87

+0

@ puzzlepiece87 уверен, что проблем нет – 0m3r

Смежные вопросы