您能告诉我为什么下面的代码没有选择可见的工作表,而是导致运行时错误。这真让我抓狂。谢谢你的帮助。
Sub SelectSheets1()
Dim mySheet As Object
Dim mysheetarray As String
For Each mySheet In Sheets
With mySheet
If .Visible = True And mysheetarray = "" Then
mysheetarray = "Array(""" & mySheet.Name
ElseIf .Visible = True Then
mysheetarray = mysheetarray & """, """ & mySheet.Name
Else
End If
End With
Next mySheet
mysheetarray = mysheetarray & """)"
Sheets(mysheetarray).Select
End Sub
最佳答案
长话短说-当期望数组时,您将给出一个字符串(mysheetarray
)。 VBA喜欢达到期望。
长话短说-这是选择所有可见工作表的方式:
Option Explicit
Sub SelectAllVisibleSheets()
Dim varArray() As Variant
Dim lngCounter As Long
For lngCounter = 1 To Sheets.Count
If Sheets(lngCounter).Visible Then
ReDim Preserve varArray(lngCounter - 1)
varArray(lngCounter - 1) = lngCounter
End If
Next lngCounter
Sheets(varArray).Select
End Sub
关于vba - 下标超出范围-运行时错误9,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42553560/