我如何获得工作表代码名称来激活特定的工作表?

问题描述 投票:0回答:1

我有一个工作表,其“选项卡”名称为“ 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

excel vba worksheet
1个回答
0
投票

这里是一个解决方案:

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
© www.soinside.com 2019 - 2024. All rights reserved.