2014-09-23 66 views
1

我正在创建一个宏,用于打开每个人在其计算机上都有的文件,并且为此必须知道该用户的用户名/工作ID。 为了得到人的工作证,我尝试使用以下:
sso = IIf(InStr(Application.OperatingSystem, "Windows") = 1, Environ("UserName"), _ 'MacScript("(user name as string)"))
运行在Windows操作系统上返回,因为Macscript的错误(我认为),我会承担同样会发生反之亦然,即使IIF的错误部分是从来没有实际访问我猜测整个行被执行这是为什么有一个问题,因此错误恢复下一个在这里真的没有帮助。VBA Excel - Macscript在使用IIF时在Windows上导致问题

我知道这可以很容易地通过使用if和else语句来克服,但我只想知道我是否正确/为什么会出现此问题,以及是否有其他更复杂的方法来实现我想要的。

感谢

回答

2

IIF函数计算真假零件,或者更确切地说,它试图这样做。没有短路。你的假设为什么它的失败(也是你不能使用OERN)是正确的。如果您的代码的某些部分无法在Windows(或Mac)上编译,您可以查看条件编译逻辑。

http://msdn.microsoft.com/en-us/library/aa240847(v=vs.60).aspx

+1

'非常感谢您的帮助' – quantum285 2014-09-23 20:18:02