簡體   English   中英

選擇所有“可見”工作表(以pdf打印)

[英]Select all “visible” worksheets (to print to pdf)

我在現有應用程序中使用以下內容,這可以正常工作,因為可以將特定的工作表打印為pdf:

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

我正在嘗試僅打印“可見”工作表的數組。

我一直在尋找解決方案,但無法付諸實踐。

一種使用False參數添加到現有選擇的簡短方法:

Sub Test()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
 If ws.Visible Then ws.Select False
Next
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

試試這個代碼,它應該可以滿足您的需求。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM