我有一个用Excel编写的应用程序加上一堆C ++ / Python插件。
addins使用的各种配置文件的位置在启动时由许多环境变量确定。我想通过最直接的方法调试与这些环境变量相关的问题:我可以简单地输入一个Excel公式,这将导致环境变量显示在工作表中吗?
让我举个例子:
我有一个名为“ MYADDIN_XML_CONFIG ”的环境变量,其中包含MyAddin组件使用的XML文件的路径。如果此环境变量设置不正确,则MyAddin将无法运行。我想要一个简单的函数,它将字符串“ MYADDIN_XML_CONFIG ”作为参数,并返回env-var的值(如果已设置)。如果未设置环境变量,则应返回NONE或某种错误代码。
可以这样做吗?
仅供参考,Windows XP上的MS Excel 2003。
答案 0 :(得分:5)
我不知道执行此操作的任何内置Excel公式,但您可以在VBA模块中创建公共函数:
Public Function Env(Value As Variant) As String
Env = Environ(Value)
End Function
然后将其用作工作表中的用户定义公式,例如
=Env("COMPUTERNAME")
答案 1 :(得分:1)
使用VBA函数Environ("MYADDIN_XML_CONFIG")
。
答案 2 :(得分:0)
不幸的是,如果您的环境变量更改了它的值(即使您重新打开Excel工作簿,该单元格的值也不会改变),那么可接受的解决方案将不起作用。如果您想使其更频繁地更新,则应在某个事件中更新单元格的值,
例如Worksheet_Activate(应将代码放在VBAProject-> Microsoft Excel Objects-> Sheet中,应予以遵守):
Private Sub Worksheet_Activate()
Range("a1") = Environ("SOME_ENV_VARIABLE")
End Sub
或Workbook_Open(代码应放置在VBAProject-> Microsoft Excel Objects-> ThisWorkbook中):
Private Sub Workbook_Open()
Range("a1") = Environ("SOME_ENV_VARIABLE")
End Sub