gpt4 book ai didi

vba - 如何在另一个工作簿中通过其 VBA 对象名称引用 Excel 工作表?

转载 作者:行者123 更新时间:2023-12-04 19:59:22 25 4
gpt4 key购买 nike

我有两个 Excel 工作簿:

  • Source.xlsx
  • Tool.xlsm
  • Source.xlsx包含具有 VBA 对象名称 shtTests 的工作表:

    Screenshot of VBA Properties for shtTests

    假设在 Tool.xlsm我有一个变量,其中包含对存储在 Source.xlsx 中的工作簿的引用:
    Dim wkbSource as Workbook
    Set wkbSource = GetSourceWorkbook() ' Some function that gives a reference to the workbook

    核心问题:如何引用 shtTestsTool.xlsm 内通过使用 shtTests ' VBA 名称?

    或者将问题表述为代码......假设你有这个代码片段:
    Dim wkbSourceShtTests as Worksheet
    Set wkbSourceShtTests = GetShtTestsFromWkbSources(wkbSources)

    问题: GetShtTestsFromWkbSources 是什么意思必须长什么样?

    注:我愿意 不是 想要通过它的 Excel 名称引用它,就像使用 wkbSources.Worksheets("Test Cloning") 一样因为人们有一天可能会更改其 Excel 名称。

    最佳答案

    这是你正在尝试的吗?

    Sub Sample()
    Dim wbThis As Workbook, wbThat As Workbook
    Dim wsThat As Worksheet
    Dim wsCodeName As String

    Set wbThis = ThisWorkbook
    Set wbThat = Workbooks("Book4") '<~~ Change this to relevant workbook

    wsCodeName = "ShtSheets"

    Set wsThat = wbThat.Worksheets(CStr(wbThat.VBProject.VBComponents(wsCodeName).Properties(7)))

    Debug.Print wsThat.Name
    End Sub

    备注 :为此,您需要启用对 Visual Basic 项目的访问权限

    File菜单 Excel,点击 Options|Trust Center|Trust Center Settings|Macro Settings , 选中“信任对 VBA 项目对象模型的访问”框

    关于vba - 如何在另一个工作簿中通过其 VBA 对象名称引用 Excel 工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44776975/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com