如何在Excel中显示操作系统环境变量?

时间:2009-10-05 11:52:25

标签: windows excel ms-office

我有一个用Excel编写的应用程序加上一堆C ++ / Python插件。

addins使用的各种配置文件的位置在启动时由许多环境变量确定。我想通过最直接的方法调试与这些环境变量相关的问题:我可以简单地输入一个Excel公式,这将导致环境变量显示在工作表中吗?

让我举个例子:

我有一个名为“ MYADDIN_XML_CONFIG ”的环境变量,其中包含MyAddin组件使用的XML文件的路径。如果此环境变量设置不正确,则MyAddin将无法运行。我想要一个简单的函数,它将字符串“ MYADDIN_XML_CONFIG ”作为参数,并返回env-var的值(如果已设置)。如果未设置环境变量,则应返回NONE或某种错误代码。

可以这样做吗?

仅供参考,Windows XP上的MS Excel 2003。

3 个答案:

答案 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