Én sem ismerem a probléma részleteit, de azért belekotyogok, hátha megsértődik valaki :)
Szóval, először is, nem kell aktiválni/kijelölni (Activate/Select) a munkalapot ahhoz, hogy nyomtassunk. (Már egy ideje küzdök itt a felesleges Select-ek ellen, de hiába...)
Másodszor, ha sokaságból akarsz név szerint kiválasztani néhány elemet, akkor azt ciklussal (szerintem) úgy a legjobb, ha a neveket szép sorban felveszed egy sztringbe, aztán a sztringből csinálsz egy tömböt a Split utasítással, majd végigmész a tömb elemein. Lásd a kódot alább.
Harmadszor, a hibaüzeneted szerintem is abból fakad, hogy a kiválasztani (Select) kívánt lap rejtett. Sajnos ezen az én módszerem sem segít, mert rejtett lapot nem tudok nyomtatni, ezért a kódba beraktam egy ideiglenes felfedést.
Sub ciklus2()
Const cMunkalapok = "Management Accounts Hotel/Management Accounts Apartments/Rooms/F&B Summary"
Const cPrintAreak = "AN1:BZ70/AN1:BZ110/AN1:BZ199/AN1:BZ134"
Dim inti As Integer, arrMunkalapok, arrPrintareak, ws As Worksheet
arrMunkalapok = Split(cMunkalapok, "/")
arrPrintareak = Split(cPrintAreak, "/")
For inti = LBound(arrMunkalapok) To UBound(arrMunkalapok)
On Error GoTo hiba
Set ws = ThisWorkbook.Worksheets(arrMunkalapok(inti))
ws.PageSetup.PrintArea = arrPrintareak(inti)
If ws.Visible <> xlSheetVisible Then
ws.Visible = xlSheetVisible
ws.PrintOut Copies:=1
ws.Visible = xlSheetHidden
Else
ws.PrintOut Copies:=1
End If
hibaután:
Next
Exit Sub
hiba:
MsgBox "A '" & arrMunkalapok(inti) & "' nevű munkalap nem található."
Debug.Print Err.Number, Err.Description
Resume hibaután
End Sub