请注意,我已经创建了一个变量环境(“MYXLSPATH”)
Dim vr As String
vr = "SETX MYXLSPATH """ & ThisWorkbook.FullName & """"
Call Shell(vr)现在,我想将这个变量的内容替换为:"NAME“
Dim vr As String
Environ.RemoveItem ("MYXLSPATH")
vr = "SETX MYXLSPATH "" NAME """
Call Shell(vr)但是,它不工作,你能帮我吗?
发布于 2021-08-11 22:23:35
第二组代码应该是:
Dim vr As String
vr = "SETX MYXLSPATH ""NAME"""
Call Shell(vr)我做了两个更改:
Environ.RemoveItem行。它不是必需的,而且似乎是NAME两边的problematic.NAME,而不是NAME或最终结果:

发布于 2021-08-11 23:09:09
您可以直接调用CMD.EXE对象来获取环境变量,而不是运行Shell命令。要替换,只需再次调用set即可。
下面是设置和获取的过程:
Option Explicit
'@Description("Set environment variable value. Defaults to user space. System space requires elevated process to modify.")
Public Sub EnvironSetItem(ByVal environVariable As String, ByVal newValue As String, Optional ByVal strType As String = "User")
With CreateObject("WScript.Shell").Environment(strType)
.Item(environVariable) = newValue
End With
End Sub
'@Description("Get environment variable value. Defaults to userspace.")
Public Function EnvironGetItem(ByVal environVariable As String, Optional ByVal strType As String = "User") As String
With CreateObject("WScript.Shell").Environment(strType)
EnvironGetItem = .Item(environVariable)
End With
End Functionhttps://stackoverflow.com/questions/68749493
复制相似问题