代码之家  ›  专栏  ›  技术社区  ›  Lernkurve

如何访问另一个Excel工作簿中定义的常量?

  •  0
  • Lernkurve  · 技术社区  · 14 年前

    如何访问另一个Excel工作簿中定义的公共常量?

    安装程序

    工作簿.xls

    它有一些VBA代码,可以读取文件名--“其他工作簿.xls在这种情况下——从单元格“A1”。然后,代码应该读取另一个工作簿中定义的常量,并将其写入单元格“A2”。下面是我的代码:

    Sub GetValueFromOtherWorkbook()
        otherWorkbook = Range("A1").Value  ' Value = "OtherWorkbook.xls"
    
        Dim returnedValue As String
    
        ' Idea 1: Doesn't work
        Set returnedValue = OtherWorkbook.xls!Module1.MY_CONSTANT
    
        ' Idea 2: Doesn't work either
        Set returnedValue = Application.Run(otherWorkbook & "!Module1.MY_CONSTANT")
    
        Range("A2").Value = returnedValue ' MY_CONSTANT = "testValue"
    End Sub
    

    其他工作簿.xls

    它有一个名为Module1的VBA模块。 Module1定义了一个公共常量。代码如下所示:

    Public Const MY_CONSTANT As String = "testValue"
    

    代码来自我的工作簿.xls如果不运行,则返回以下错误

    需要对象

    即使阅读了帮助文档,我也不知道该怎么处理它。在另一个上下文中,我使用以下代码调用了另一个工作簿中的例程:

    otherWorkbookName = "OtherWorkbook.xls"
    Application.Run (otherWorkbookName & "!Module1.SomeRoutine")
    

    你知道我下一步能做什么吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   GSerg    14 年前

    代码模块不是像工作表那样可以访问的对象。

    您可以访问和操作它,但为了做到这一点,您需要引用 Microsoft Visual Basic for Applications Extensibility 库并允许访问VBA项目(工具-选项-安全性-宏安全性-受信任的发布者-信任对VBA项目的访问),然后可以使用 Workbook.VBProject 第二个工作簿的属性。

    你不需要这么做。相反,您可以创建对其他工作簿的引用:在VBA IDE中,转到“工具-引用”,单击 Browse 找到你的工作簿和常数。