我想通过VBA检索工作表代码级私有常量的值。我尝试做类似于"标签"在我可以通过VBA访问的工作表上。我想在VBAProject中使用CodeModule,这样我就可以拥有许多"标签"而不只是一个。即使在线查看了很多代码和论坛之后,我也无法弄清楚如何获取常量。有没有人对此有任何见解?我在Windows 8.1计算机上运行Excel 2013。
答案 0 :(得分:1)
也许最简单的方法是使用一个带有公共访问器方法的私有常量值的函数。例如,如果工作表Sheet1
中包含以下代码:
Private Const myValue = "the answer is 42"
Public Function getSecret()
getSecret = myValue
End Function
然后您可以使用
从其他模块访问它Sub test()
Dim sheetName = "Sheet1"
MsgBox "The sheet says that " & Sheets(sheetName).getSecret()
End Sub
你可以让这个更加漂亮 - 你可以创建一个标签集合并将它们编入索引...但我认为这超出了你的问题。请注意,当访问者宏位于工作表中时,您必须“完全限定”访问者宏的名称;优点是您只需更改sheetName
即可使用相同的功能检查不同工作表的标记。
答案 1 :(得分:0)
我会将代码导出到.BAS文件。然后,您可以将该材料作为文本文件重新读取并检索常量