如何使用VBA在Excel中打印不连续的列?

大家,早安!

我需要构build一个macros,它将打印出基于当前活动工作表的报表。 工作表包含多个macrosbutton,每个macrosbutton都将在此特定工作表的相同范围内显示不同的内容。 而不是报告中我需要的所有列,但是,他们不能移动。 所以现在我写这个来解决这个问题。

Sub Macro111() Dim PrintThis As Range Dim LastRow As Long LastRow = Sheets("Reports").Range("G" & Rows.Count).End(xlUp).Row With Sheets("Reports") Set PrintThis = Union(.Range("G1:G" & LastRow), .Range("k1:L" & LastRow), .Range("Q1:Q" & LastRow), .Range("S1:T" & LastRow)) End With PrintThis.PrintPreview End Sub 

但是,它永远在运行,并在不同的页面上打印列。 我该如何解决这个问题?

谢谢!

运行你的macros之前,先运行这个:

 Sub RunMeFirst() Columns.Hidden = True Range("G:G, K:L, Q:Q, S:T").EntireColumn.Hidden = False End Sub 

运行完macros后,取消隐藏所有列。