这让我彻底困惑了。
Sub testChangeBoolean()
Dim X As Boolean ' default value is False
X = True ' X is now True
X = Not X ' X is back to False
End Sub
但我正在尝试在Word中切换表格单元格(cell)的 .FitText 属性。.FitText 起始值为True。
如果我将其分配给X:
Sub testChangeBoolean()
Dim X As Boolean ' again, default is False
X = Selection.Cells(1).FitText ' does set X to True
X = Not X ' X is still True!
End Sub
我就是不明白我做错了什么。
Not
不按预期工作的情况,但它没有处理这里行为背后的原因:Word对象模型不遵循VBA规则。在链接的重复问题中完全缺少对该方面的讨论。 - Cindy MeisterFalse
为0(所有位都清除),而True
定义为Not False
,这意味着-1(所有位都设置)。这也会导致WinAPI互操作问题。任何非零值都被视为“True”,因此只有在开始操作位并且不了解正在发生的情况,并且缺乏位/逻辑运算符之间区别时才会出现问题。当根本原因和解决方案基本相同时,我不认为重新打开此问题有任何价值。 - Cody Gray