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

时间:2016-05-20 14:37:29

标签: excel vba excel-vba

大家早上好!

我需要构建一个基于当前活动工作表打印报告的宏。该工作表包含几个宏按钮,每个按钮将在此特定工作表的相同范围内显示不同的内容。然而,并不是我需要在报告中提供的所有列,它们都无法移动。所以现在我写这个来解决这个问题。

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

但是,它会永远运行,并在单独的页面中打印出列。我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

在运行宏之前,先运行它:

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

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