![](/img/trans.png)
[英]How can I active a specific worksheet based on a variable. The variable will have the name of the desired Sheet to activate
[英]How can I get worksheet code name to activate a specific worksheet?
我有一个“标签”名称为“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()
Dim WBA As Workbook
Set WBA = Workbooks("Book1")
WorksheetByCodeName(WBA, "codeNameHere").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
可能想在尝试对它做任何事情之前检查返回值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.