在excel中过滤后打印可见区域的宏

时间:2016-08-09 23:58:47

标签: excel vba printing filter

我有一个基于column A值过滤表格的宏。现在我想在过滤器之后打印可见行,但遗憾的是它会打印所有行,包括过滤器中隐藏的顶行和底行。

在我的工作表中,有来自Column A:I的数据,但打印区域应该只有Columns C:I - 过滤后的可见行。

以下是我迄今为止尝试过的代码:

代码1:

  ActiveSheet.PageSetup.printarea = Range("C3:I81000").Rows.SpecialCells(xlCellTypeVisible)

代码2:

 Dim lastrow As Long
 lastrow = ActiveSheet.UsedRange.Rows.Count
 Range(Cells(3, 3), Cells(lastrow, 9)).Select
 ActiveSheet.PageSetup.printarea = Selection.Address

还有其他建议吗?

2 个答案:

答案 0 :(得分:1)

最后,这段代码有效! :)感谢所有人!

std::crbegin

答案 1 :(得分:0)

根据您需要的代码,我刚刚确认以下代码段有效:

Public Sub Test()
    Range("C3").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.PageSetup.PrintArea = Selection.Address
    'ActiveSheet.PrintOut
Range("C3").Select
End Sub

请激活" PrintOut"只有在您希望将命令发送到打印机时才行。

出于某种原因。 "选择"对于隐藏/过滤的单元格而言,行比选择行的其他选项更有效。

希望有所帮助 最好 seulberg1