Excel VBA,获取私有工作表常量的值

Excel VBA, Get the value of a private worksheet constant

我想通过 VBA 检索工作表代码级私有常量的值。我正在尝试做一些类似于在我的工作表上放置"标签"的事情,这些工作表可以通过 VBA 访问。我想在 VBAProject 中使用 CodeModule,这样我就可以拥有多个"标签",而不仅仅是一个。即使在网上查看了很多代码和论坛之后,我也无法弄清楚如何获取常量。有人对此有任何见解吗?我在 Windows 8.1 机器上运行 Excel 2013。


也许最简单的方法是拥有一个函数,该函数可以使用公共访问器方法获取私有常量的值。例如,如果您的工作表中有以下代码 Sheet1:

1
2
3
4
5
Private Const myValue ="the answer is 42"

Public Function getSecret()
  getSecret = myValue
End Function

然后你可以从另一个模块访问它

1
2
3
4
Sub test()
    Dim sheetName ="Sheet1"
    MsgBox"The sheet says that" & Sheets(sheetName).getSecret()
End Sub

你可以让这个更有趣——你可以创建一个标签集合并索引主题€|但我认为这超出了你的问题。请注意,当访问器宏位于工作表中时,您必须"完全限定"访问器宏的名称;优点是您可以使用相同的功能来检查不同工作表的标签,只需更改 sheetName.


我会将代码导出为 .BAS 文件。然后,您可以将材料作为文本文件读回并检索常量