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

我有一个基于column A值过滤表的macros。 现在,我希望在filter后面打印可见的行,但是遗憾的是,它会打印所有行,包括在filter中隐藏的顶行和底行。

在我的工作表中,有来自Column A:I数据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 

还有其他build议吗?

最后,这个代码工作! :) 谢谢大家!

  ActiveSheet.PageSetup.PrintArea = Range("C3:I" & lastrow).Rows.SpecialCells(xlCellTypeVisible).Address 

根据你需要的代码,我只是确认下面的代码片段工作:

 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 

仅当您要将命令发送到打印机时,请激活“打印输出”行。

因为某些原因。 行的“select”对隐藏/过滤的单元格比select行的其他选项更好。

希望有助于最好的seulberg1