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 所示。