3

在我的 32 位 PC 上,运行 Office 2003 Excel VBA,以下代码

Debug.Print ""
Debug.Print Hex(&HFF00000 And &HF00000)
Debug.Print Hex(&HFF0000 And &HF0000)
Debug.Print Hex(&HFF000 And &HF000)
Debug.Print Hex(&HFF00 And &HF00)
Debug.Print Hex(&HFF0 And &HF0)
Debug.Print Hex(&HFF And &HF)

给出以下输出

F00000
F0000
FF000   '<- Here's the Anomaly 
F00
F0
F

这似乎只发生在十六进制值“F”中;即用任何其他十六进制数字替换所有“F”,输出将如预期

看起来像是 16 位处理的一些后遗症

我的世界已经破碎

我想知道是否;

1)这真的是一个异常(或者我要疯了?)

如果是;

2) 它是否与其他 Office 版本一起出现

3) 它是否发生在 64 位 PC 上

4)什么是最优雅的解决方法

任何线索将不胜感激

4

1 回答 1

8

对于 VBA 中的大十六进制数字,您需要附加&(长类型字符)以确保它正确存储为长。

例如试试这个

Debug.Print &HF000, &HF000&
于 2014-01-18T02:24:38.070 回答