Windows 在运行Excel之前,动态设置环境变量的正确方法是什么?
我有一堆Excel加载项,它们是由环境变量配置的。通常,这些是在整个系统的基础上在注册表中设置的。当我想非动态更改值时,我会转到:Windows 在运行Excel之前,动态设置环境变量的正确方法是什么?,windows,excel,ms-office,Windows,Excel,Ms Office,我有一堆Excel加载项,它们是由环境变量配置的。通常,这些是在整个系统的基础上在注册表中设置的。当我想非动态更改值时,我会转到: my-computer -> properties -> advanced -> environment variables -> System variables 我已经验证过,当我在这里设置环境变量时,Excel似乎会像我们预期的那样提取它 但是,我还需要动态设置环境变量,例如,使我的Excel加载项使用替代配置文件。我希望能够做到以下
my-computer -> properties -> advanced -> environment variables -> System variables
我已经验证过,当我在这里设置环境变量时,Excel似乎会像我们预期的那样提取它
但是,我还需要动态设置环境变量,例如,使我的Excel加载项使用替代配置文件。我希望能够做到以下几点:
set MYADDIN_CONFIG_FILE=path_to_config.xml
<path to excel>\excel.exe
将MYADDIN\u CONFIG\u FILE=path\u设置为\u CONFIG.xml
\excel.exe
不幸的是,当我这样做时,就好像完全忽略了对环境变量的更改。我猜Excel需要被告知,是否注意到从命令行设置的环境变量
我已经使用VB“Env”函数验证了上述技术失败
仅供参考:WindowsXP32bit上的Excel2003。我做了一个简单的测试(WindowsXPPro SP3上的Excel2003SP2)
我编写了一个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行为)。环境又称shell又称命名空间的概念有点难以解释,甚至难以理解。可以说这是意料之中的事。在SO中所做的更改只会影响在您制作它的shell中运行的程序,以及在新shell中运行的程序,除非您主动传播它。不确定如何在windows上完成此操作。启动时,将重新创建所有shell,并且所有人都可以看到更改。