excel VBA函数的返回结果

excel VBA函数的返回结果,excel,vba,Excel,Vba,对任何人来说都是简单的上篮。我已经编写了一个函数isMac(),它查看当前的操作系统,如果前3个字母是Mac,它应该返回True。然后我想将函数的返回值赋给另一个函数中的变量。我当前正在运行Mac,因此当我运行以下代码时,MsgBox显示True,而Debug.Print返回False Function isMac() As Boolean If Left(Application.OperatingSystem, 3) = "Mac" Then result = True Els

对任何人来说都是简单的上篮。我已经编写了一个函数
isMac()
,它查看当前的操作系统,如果前3个字母是Mac,它应该返回
True
。然后我想将函数的返回值赋给另一个函数中的变量。我当前正在运行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