1

拜托,我已经创建了变量 Environ("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)

但是,它不起作用,你能帮帮我吗?

4

2 回答 2

1

您可以调用 Shell 对象直接访问环境变量,而不是运行 CMD.EXE 命令。要更换,只需再次调用该组。

以下是设置和获取的过程:

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 Function
于 2021-08-11T23:09:08.930 回答
1

第二组代码应该是:

Dim vr As String
vr = "SETX MYXLSPATH ""NAME"""
Call Shell(vr)

我做了两个改变:

  1. 删除了该Environ.RemoveItem行。这不是必需的,而且似乎有问题。
  2. 去掉两边的空格NAME。所以这意味着环境变量设置为NAME而不是 NAME 

最终结果:

在此处输入图像描述

于 2021-08-11T22:23:35.223 回答