[英]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.