我的任务是创建一个安全的(Windows版本)Excel工作簿,该工作簿使用宏来验证用户是否有权查看内容。在Excel 2010 for Windows中,我使用Environ("username")
函数来完成此操作。
我遇到的问题是组织中的某些用户使用Mac来完成日常工作,Environ
不能与OSX一起使用。
有没有人知道找到Mac用户名的另一种方法?我看过网上但我能找到的是如何找到计算机的唯一标识符,而不是用户名。
我试图用Mac做什么呢?
感谢任何信息!
答案 0 :(得分:3)
您可以使用AppleScript返回用户名并从VBA运行。
以下功能应该可以解决问题。
Function GetUserNameMac() As String
Dim sMyScript As String
sMyScript = "set userName to short user name of (system info)" & vbNewLine & "return userName"
GetUserNameMac = MacScript(sMyScript)
End Function
答案 1 :(得分:2)
Environ("USER")
和Environ("LOGNAME")
在Mac上返回与MacScript答案相同的内容。
答案 2 :(得分:0)
我刚刚在寻找与 Environ("COMPUTERNAME") 等效的 macOS 时发现了这个问题,因为我一直在使用它:
MacScript("do shell script ""hostname""")
如果您想获取所有三个常用用户 ID,则返回用户帐户名:
MacScript("do shell script ""stat -f$Su /dev/console""")
这将返回数字用户 ID,通常是 501:
MacScript("do shell script ""stat -f$Uu /dev/console""")
这将返回用户的真实姓名(如菜单栏中所示):
MacScript("do shell script ""id -P $(stat -f%Su /dev/console | cut -d : -f 8""")