我想弄清楚如何打印「ActiveSheet」或Sheet1與「Sheet5」(行1-6,A:M)一起顯示在底部的2行Sheet1結束和Sheet5數據開始之間的空間。我一直試圖查找類似的問題,並閱讀關於「聯盟」的內容,但我不確定它會如何適合這裏。從多個工作表結合打印範圍VBA EXCEL
Private Sub CommandButton1_Click()
Dim Sel_Manager As String
'Headers repeated at the top
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = "$2:$2"
.PrintTitleColumns = "$B:$M"
.Orientation = xlLandscape
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
'Manager selection through ComboBox dropdown
Sel_Manager = ComboBox1
'Inserting autofilters for worksheet
Cells.Select
Selection.AutoFilter
'Manager defined in the dropdown ComboBox
ActiveSheet.Range("B2", Range("M2").End(xlDown)).AutoFilter Field:=1, Criteria1:=Sel_Manager
ActiveSheet.Range("B2", Range("M2").End(xlDown)).AutoFilter Field:=2, Criteria1:="A"
'Here I select range to be printed and specify manager in filename
ActiveSheet.Range("B2", Range("M2").End(xlDown)).Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Sel_Manager + ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
ActiveSheet.ShowAllData
Application.PrintCommunication = True
End Sub
'設置Rng3 =聯合(Rng1,Rng2)'將創建包含Rng1和Rng2的組合範圍。 Rng1和Rng2不必是連續的,但它們必須位於同一工作表內。所以'聯合'不會幫助打印兩個工作表的位。您必須創建一個新的臨時工作表並從Sheet1和Sheet5複製所需的數據,打印臨時工作表,然後刪除臨時工作表。 –
如果我將參考單元粘貼到Rng1底部的Rng2,是否可以將Rng2設置爲動態命名範圍?它需要是動態的,因爲用戶可以將行添加到Rng1中,這會將底部的Rng2參考向下移動。我嘗試使用命名的範圍,但它鎖定範圍內的任何行你先設置它,並不會調整時插入行。 –
我不完全理解你的問題。用戶如何在宏運行時添加更多的行?一個「聯盟」可以結合多達30個範圍:「聯盟(Rng1,Rng2,...,Rng30)」。 「聯盟」是一種智能功能;如果兩個範圍是連續的,它將合併它們。你可以在用'Union'創建的範圍上使用'Union'。 Set Rng1 = Union(Rng2,Rng3)''Set Rng1 = Union(Rng1,Rng4)'是有效的。 –