Sub ПЕЧАТЬ()
Dim sh As Worksheet, s
With ThisWorkbook
For Each sh In .Worksheets
If Not sh.[F63].Value = 0 Then s = s & sh.Name & ","
Next sh
s = Split(Left(s, Len(s) - 1), ",")
.Worksheets(s).PrintOut Copies:=1
End With
End Sub
Нужно что бы лист "Лист 1" и "Лист 2" при заданном условии печатались по 2 копии, а остальные листы при заданном условии по 1 копии Заранее огромное спасибо!
Option Explicit
Sub ПЕЧАТЬ()
Dim sh As Worksheet, s
With ThisWorkbook
For Each sh In .Worksheets
If Not sh.[F63].Value = 0 And _
sh.Name <> "Лист 1" And _
sh.Name <> "Лист 2" Then s = s & sh.Name & ","
Next sh
If Len(s) > 0 Then
s = Split(Left(s, Len(s) - 1), ",")
.Worksheets(s).PrintOut Copies:=1
End If
.Worksheets(vba.array("Лист 1","Лист 2")).PrintOut Copies:=2
End With
End Sub
Sub ПЕЧАТЬ()
Dim sh As Worksheet, s
With ThisWorkbook
For Each sh In .Worksheets
If Not sh.[F63].Value = 0 Then s = s & sh.Name & ","
Next sh
s = Split(Left(s, Len(s) - 1), ",")
.Worksheets(s).PrintOut Copies:=1
Dim arr(): arr = VBA.Array("Лист 1", "Лист 2")
Dim i As Long
s = ""
On Error Resume Next
For i = 0 To UBound(arr, 1)
Set sh = .Worksheets(arr(i))
If Not sh Is Nothing Then s = s & sh.Name & ","
Next i
On Error GoTo 0
If Len(s) > 0 Then
s = Split(Left(s, Len(s) - 1), ",")
.Worksheets(s).PrintOut Copies:=1
End If
End With
End Sub
Формула массива (ФМ) вводится Ctrl+Shift+Enter Memento mori