excel VBA返回函数的结果

时间:2016-02-06 03:36:55

标签: excel vba

任何人的简单上架。我编写了一个函数isMac()来查看当前的操作系统,如果前三个字母是Mac,它应该返回True。然后我想将函数的返回值赋给另一个函数中的变量。我目前正在运行Mac,因此当我运行以下代码时,MsgBoxTrue,而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语句中正确返回布尔值,以便我可以在另一个函数中使用它?

1 个答案:

答案 0 :(得分: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。