在运行Excel之前动态设置环境变量的正确方法是什么?

时间:2009-10-05 12:48:52

标签: windows excel ms-office

我有一堆由环境变量配置的Excel插件。通常,这些是在系统范围内在注册表中设置的。当我想非动态地更改值时,我会转到:

my-computer -> properties -> advanced -> environment variables -> System variables

我已经确认,当我在这里设置一个环境变量时,它似乎完全按照我们的预期被Excel拾取。

但是,我还需要动态设置环境变量,例如使我的Excel插件使用备用配置文件。我希望能够做到这样的事情:

set MYADDIN_CONFIG_FILE=path_to_config.xml
<path to excel>\excel.exe

不幸的是,当我这样做时,就好像完全忽略了对环境变量的更改。我猜想Excel需要以某种方式告知已经从命令行设置的环境变量?

我已经验证上述技术无法使用VB“Env”功能。

仅供参考:Windows XP 32位上的Excel 2003。

1 个答案:

答案 0 :(得分:3)

我做了一个简单的测试(Windows XP Pro SP3上的Excel 2003 SP2)。

我写了一个VBA函数:

Public Function GetEnv(name As String) As String
  GetEnv = Environ(name)
End Function

然后我打字:

=GetEnv("TEMP")
=GetEnv("JAVA_HOME")
=GetEnv("TestSO")

后者未定义,单元格仍为空。

现在,我转到命令行并输入:

set TestSO=This is a test for SO
"C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE"

我加载了上一张。呃,结果没有改变,即使在点击F9之后,但如果我点击公式并点击返回,结果会更新...(我在Excel / VBA使用方面有点生疏......)
无论如何,它确实显示在运行Excel之前在当前控制台中动态设置的正确环境变量。正如所料(常见的Windows行为)。