2016-02-06 87 views
1

任何人的簡單鋪墊。我寫了一個函數isMac(),它查看當前的操作系統,如果前三個字母是Mac,它應該返回True。然後我想將函數的返回值賦給另一個函數中的變量。我目前使用的是Mac,所以當我運行下面的代碼中,MsgBoxTrue,而Debug.Print回報Falseexcel功能的VBA返回結果

Function isMac() As Boolean 
    If Left(Application.OperatingSystem, 3) = "Mac" Then 
    result = True 
    Else 
    result = False 
    End If 
    MsgBox result 
End Function 

Sub test() 
    Debug.Print isMac() 
End Sub 

如何正確地從我的IF語句返回一個布爾值,這樣我可以利用它在另一個功能?

回答

2

嘗試將結果分配給函數。

Function isMac() As Boolean 
    isMac = CBool(LCase(Left(Application.OperatingSystem, 3)) = "mac") 
End Function 

Sub test() 
    Debug.Print isMac() 
End Sub 

另一種方法是編譯器指令和Compiler Constants。在模塊代碼頁的聲明面積,

#If Mac Then 
    Public Const bMAC as Boolean = True 
#Else 
    Public Const bMAC as Boolean = False 
#End If 

使用bMAC在你的代碼的任何地方,以確定是否操作系統是Mac或沒有。

+0

作品..........謝謝你,我討厭excel。可愛的狗。 – thedanotto

+0

很高興爲你工作。 tbh,我討厭Macs。 – Jeeped