在VBA中,可以使用以下代码仅将可见的列和行打印/保存到XLSX文件:
Sub PrintVisibleRowsAndColumns()
Dim ws As Worksheet
Dim rng As Range
Dim visibleRows As Range
Dim visibleColumns As Range
' 设置要操作的工作表
Set ws = ThisWorkbook.Worksheets("Sheet1")
' 获取可见的行
Set visibleRows = ws.Rows.SpecialCells(xlCellTypeVisible)
' 获取可见的列
Set visibleColumns = ws.Columns.SpecialCells(xlCellTypeVisible)
' 将可见的行和列合并为一个范围
Set rng = Intersect(visibleRows, visibleColumns)
' 打印可见的行和列
rng.PrintOut
' 保存可见的行和列到XLSX文件
rng.Copy
Workbooks.Add
ActiveSheet.Paste
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "C:\Path\To\Save\File.xlsx", FileFormat:=51
Application.DisplayAlerts = True
' 清除剪贴板中的内容
Application.CutCopyMode = False
End Sub
这段代码首先设置要操作的工作表,然后使用SpecialCells
方法获取可见的行和列。接着,将可见的行和列合并为一个范围,并使用PrintOut
方法打印可见的行和列。最后,将可见的行和列复制到一个新的工作簿中,并将该工作簿保存为XLSX文件。
请注意,代码中的文件保存路径需要根据实际情况进行修改。此外,如果要保存为其他格式的文件,可以根据需要修改FileFormat
参数的值。
领取专属 10元无门槛券
手把手带您无忧上云