VBA - Windows 和 OSX 中的用户名
VBA - username in both Windows and OSX
我正在编写 VBA 代码来收集来自多个 xlsx 文件的输入并将它们组合成一个主文件 sheet。由于此 sheet 的用户混合了 Windows 和 OSX 用户,因此我的代码需要在两个平台上通用。
我想要实现的其中一件事是确定用户的用户名。这可以通过在 Windows 上使用 environ("username")
和在 OSX 上使用 MacScript
来完成。但是,下面的代码无法在 Mac 上编译,因为它不知道 environ()
.
OS_IS_MAC = Application.OperatingSystem Like "*Mac*"
If OS_IS_MAC Then
sMyScript = "set userName to short user name of (system info)" & vbNewLine & "return userName"
USERNAME = MacScript(sMyScript)
Else
USERNAME = Environ("UserName")
End If
我该如何解决这个问题?
使用条件编译:
#If Mac Then
sMyScript = "set userName to short user name of (system info)" & vbNewLine & "return userName"
USERNAME = MacScript(sMyScript)
#Else
USERNAME = Environ("UserName")
#End If
其中一个可能更简单:
USERNAME = Environ("USER")
或
USERNAME = Environ("LOGNAME")
它们的工作方式如 Mac 所示。
我正在编写 VBA 代码来收集来自多个 xlsx 文件的输入并将它们组合成一个主文件 sheet。由于此 sheet 的用户混合了 Windows 和 OSX 用户,因此我的代码需要在两个平台上通用。
我想要实现的其中一件事是确定用户的用户名。这可以通过在 Windows 上使用 environ("username")
和在 OSX 上使用 MacScript
来完成。但是,下面的代码无法在 Mac 上编译,因为它不知道 environ()
.
OS_IS_MAC = Application.OperatingSystem Like "*Mac*" If OS_IS_MAC Then sMyScript = "set userName to short user name of (system info)" & vbNewLine & "return userName" USERNAME = MacScript(sMyScript)
Else
USERNAME = Environ("UserName")
End If
我该如何解决这个问题?
使用条件编译:
#If Mac Then
sMyScript = "set userName to short user name of (system info)" & vbNewLine & "return userName"
USERNAME = MacScript(sMyScript)
#Else
USERNAME = Environ("UserName")
#End If
其中一个可能更简单:
USERNAME = Environ("USER")
或
USERNAME = Environ("LOGNAME")
它们的工作方式如 Mac 所示。