我有一个工作表,其“选项卡”名称为“ Rpt_Group”。我还将其代号重命名为shData。当我使用VBA通过“ Rpt_Group”激活工作表时,它运行良好。但是,当我使用代码名称时,会出现错误消息
“下标超出范围。
此作品:WBA.Worksheets("Rpt_Group").Activate
这不起作用:WBA.Worksheets("shData").Activate
这不起作用:WBA.shData.Activate
Dim WBA As Workbook
'Open the desired workbook
Set WBA = Workbooks.Open(Filename:="path & file name")
'Activate the desired worksheet
WBA.Worksheets("Rpt_Group").Activate 'this works
这不起作用:WBA.Worksheets("shData").Activate
这不起作用:WBA.shData.Activate
这里是一个解决方案:
Sub tester()
WorksheetByCodeName(ThisWorkbook, "Sheet3").Activate
End Sub
'Get a worksheet with matching codeName (or Nothing if no match)
' from a workbook wb
Function WorksheetByCodeName(wb As Workbook, codeName As String)
Dim ws As Worksheet, rv As Worksheet
For Each ws In wb.Worksheets
If ws.codeName = codeName Then
Set rv = ws
Exit For
End If
Next ws
Set WorksheetByCodeName = rv
End Function