select所有“可见的”工作表(打印到PDF)

我在现有的应用程序中使用以下内容,并且可以正常打印特定的工作表到PDF:

Sheets(Array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")).Select 

我试图打印只是我的“可见”工作表的数组。

我寻找解决scheme,但不能把我的手指。

试试这个代码,它应该做你正在寻找的东西。

 Sub SelectSheets() Dim myArray() As Variant Dim i As Integer Dim j As Integer j = 0 For i = 1 To Sheets.Count If Sheets(i).Visible = True Then ReDim Preserve myArray(j) myArray(j) = i j = j + 1 End If Next i Sheets(myArray).Select End Sub 

尝试这个

 Option Explicit Sub main() ThisWorkbook.Sheets(GetVisibleWorksheetsNames(ThisWorkbook)).Select End Sub Function GetVisibleWorksheetsNames(wb As Workbook) As String() Dim ws As Worksheet Dim wsNames() As String Dim iV As Long With wb ReDim wsNames(1 To .Worksheets.Count) For Each ws In .Worksheets If ws.Visible Then iV = iV + 1 wsNames(iV) = ws.name End If Next ws ReDim Preserve wsNames(1 To iV) End With GetVisibleWorksheetsNames = wsNames End Function 

使用False参数添加到现有select的简短方法:

 Sub Test() Dim ws As Worksheet For Each ws In ActiveWorkbook.Sheets If ws.Visible Then ws.Select False Next End Sub