VBA - Windows和OSX中的用户名

时间:2015-03-05 08:10:12

标签: windows macos vba excel-vba cross-platform

我正在编写VBA代码来收集来自多个xlsx文件的输入,并将它们组合成一个主表。由于此工作表的用户是混合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)
     

否则

   USERNAME = Environ("UserName")
     

结束如果

我怎样才能解决这个问题?

2 个答案:

答案 0 :(得分:5)

使用条件编译:

#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

答案 1 :(得分:0)

其中一个可能更简单:

USERNAME = Environ("USER")

USERNAME = Environ("LOGNAME")

他们按照Mac上的显示工作。