Dim Val As Long
Do
...
变量Val的值一直在变化
...
Loop While (Val And &H2) <- 请问这个条件是什么意思?

解决方案 »

  1.   

    (Val And &H2) 是测试Val的第1位(即二进制的从右边数2位)是否是1它等价于(Val And &H2) <> 0
      

  2.   

    (Val And &H2) <> 0注意括号的位置, 千万不要写成: (Val And &H2 <> 0)
    也千万不要把括号拿掉, 变成: Val And &H2 <> 0因为在VB中, 关系运算符(=、<、>、<=、>=、<>)的运算优先级高于逻辑运算符(AND、OR、XOR)
      

  3.   

    将Val的值与&H2进行按位布尔“与”运算……
    例如,Val=15=&HF=000....001111(bin)
    &H2=000....000010(bin)    000...001111
    and 000...000010
    ----------------
        000...000010(bin)=2=&H2只要这个计算结果为非0,在这里就可以看作条件成立,执行循环。