首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在vba中替换变量Environ

在vba中替换变量Environ
EN

Stack Overflow用户
提问于 2021-08-11 22:13:49
回答 2查看 47关注 0票数 1

请注意,我已经创建了一个变量环境(“MYXLSPATH”)

代码语言:javascript
复制
Dim vr As String
vr = "SETX MYXLSPATH """ & ThisWorkbook.FullName & """"
Call Shell(vr)

现在,我想将这个变量的内容替换为:"NAME“

代码语言:javascript
复制
Dim vr As String
Environ.RemoveItem ("MYXLSPATH")
vr = "SETX MYXLSPATH "" NAME """
Call Shell(vr)

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

EN

回答 2

Stack Overflow用户

发布于 2021-08-11 22:23:35

第二组代码应该是:

代码语言:javascript
复制
Dim vr As String
vr = "SETX MYXLSPATH ""NAME"""
Call Shell(vr)

我做了两个更改:

  1. 删除了Environ.RemoveItem行。它不是必需的,而且似乎是NAME两边的problematic.
  2. Removed空间。因此,这意味着环境变量设置为NAME,而不是NAME

最终结果:

票数 1
EN

Stack Overflow用户

发布于 2021-08-11 23:09:09

您可以直接调用CMD.EXE对象来获取环境变量,而不是运行Shell命令。要替换,只需再次调用set即可。

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

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68749493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档