在vba里,布尔值转为数字时,false会变为0,true则变为-1 这与excel的函数运算不同,自定义函数本质上也是vba代码生成的。 为了避免出现这种情况,可以将自定义函数的代码修改一下:

Function AddTwo(arg1 As Double, arg2 As Double) As Double If arg1 = True Then arg1 = 1 ElseIf arg1 = False Then arg1 = 0 End If If arg2 = True Then arg2 = 1 ElseIf arg2 = False Then arg2 = 0 End If AddTwo = arg1 + arg2 End Function