excelfunction的VBA返回结果

简单的上篮给任何人。 我已经写了一个函数isMac() ,它看着当前的操作系统,如果前三个字母是Mac,它应该返回True 。 然后我想把函数的返回值赋给另一个函数的variables。 我目前正在运行一个Mac,所以当我运行下面的代码时, MsgBox表示True ,而Debug.Print返回False

 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语句返回一个布尔值,以便我可以在另一个函数中使用它?

尝试将结果分配给函数。

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

另一种方法是编译器指令和编译器常数 。 在模块代码表的声明区域中,

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

在代码中的任何地方使用bMAC来确定操作系统是否是Mac。