为什么Debug.print区分Boolean和Integer?

Rol*_*and 1 excel vba excel-vba

我假设在vba中类型Boolean只是一个16位整数.那么为什么以及如何Debug.Print区分这两者呢?

Debug.Print -1 = True
Debug.Print -1
Debug.Print True
Run Code Online (Sandbox Code Playgroud)

将输出:

True
-1  
True
Run Code Online (Sandbox Code Playgroud)

小智 6

第1行计算结果为(如果-1等于true),则打印true,否则为print false

第2行评估打印-1(如您所知)

第3行评估打印为true(如您所知)

在VBA中,-1为真,0为假