我有一個包含6個不同工作表的工作簿。該工作簿需要給用戶打印兩組不同的報告。選項1將打印工作表1,3和5,選項2將打印工作表2,4和6.每張工作表將需要不同的打印範圍和打印設置。我已經這樣接近它,並想知道這是否是最好的方法來處理它(我確信有一個更好/正確的方法)。在Excel中打印特定的工作表,使用不同的打印區域和使用VBA的打印設置
Sub printingSheets()
Dim Sh1 As Worksheet
Dim Sh3 As Worksheet
Dim Sh5 As Worksheet
With ThisWorkbook
Set Sh1 = .Sheets(「Dataset1」)
Set Sh3 = .Sheets(「Dataset2」)
Set Sh5 = .Sheets(「Dataset3」)
‘Setting the print area
Sh1.PageSetup.PrintArea = "$A$1:$C$5"
Sh3.PageSetup.PrintArea = "$A$1:$S$5"
Sh5.PageSetup.PrintArea = "$A$1:$AA$7"
‘Setting up the print setup
Sh1.PageSetup.PaperSize = xlPaperA4
Sh3.PageSetup.PaperSize = xlPaperA4
Sh5.PageSetup.PaperSize = xlPaperA3
‘Print
Array(Sh1, Sh3, Sh5).PrintOut Copies:=1
End Sub
然後我會爲其他工作表寫一個單獨的宏。
感謝任何人願意幫助!
你可以寫,讓普通子你傳遞工作表,然後遍歷它們,從其他地方(或子集中定義的集合)查找正確的打印區域等。但是,由於所涉及的紙張數量很少,而且打印區域和設置都是針對每個紙張單獨進行硬編碼的,所以我認爲您的方法很好。除非將來可能需要擴展? – aucuparia
感謝@aucuparia是的我同意,對於標籤的數量我想我會繼續上面的代碼。感謝您給它看看! –