Environ VBA的功能代码示例

gar*_* G4 19 vba environment-variables

我正在寻找EnvironVBA中的函数的一些信息或代码示例来获取当前系统上的用户名.

Eri*_*ric 42

Environ()获取任何环境变量的值.可以通过在命令提示符中执行以下命令找到这些:

set
Run Code Online (Sandbox Code Playgroud)

如果你想获得用户名,你会这样做:

Environ("username")
Run Code Online (Sandbox Code Playgroud)

如果您想获得完全限定的名称,您可以:

Environ("userdomain") & "\" & Environ("username")
Run Code Online (Sandbox Code Playgroud)

参考

  • 此外,不要忘记Environ是父进程启动时环境变量的缓存副本.很难找到这个. (3认同)
  • 不要忘记Environ是沙盒模式中阻止的功能之一:http://office.microsoft.com/en-us/access/HP010447361033.aspx (2认同)

Oor*_*ang 20

正如Eric所提到的,你可以像这样使用带有ComputerName参数的环境:

MsgBox Environ("USERNAME")
Run Code Online (Sandbox Code Playgroud)

一些可能对您有所帮助的其他信息:

  1. 参数区分大小写.
  2. Environ功能的字符串版本稍微快一些.要调用它,请使用美元符号.(例如:Environ $("用户名"))这将为您带来小的性能提升.
  3. 您可以使用此功能检索所有系统环境变量.(不仅仅是用户名.)常见的用途是获取"ComputerName"值以查看用户登录的计算机.
  4. 我不建议在大多数情况下使用它,但知道您也可以使用索引访问变量有时会很有用.如果使用此语法,则返回参数名称值.通过这种方式,您可以枚举所有可用变量.有效值为1 - 255.
    Sub EnumSEVars()
        Dim strVar As String
        Dim i As Long
        For i = 1 To 255
            strVar = Environ$(i)
            If LenB(strVar) = 0& Then Exit For
            Debug.Print strVar
        Next
    End Sub
Run Code Online (Sandbox Code Playgroud)