2014-09-23 29 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