带基数2增量的循环的VBA
为了识别位掩码值的内容,我需要一个有效的VBA解决方案来迭代可能的1、2、4、8。。跳过中间的任何内容 现在,我唯一的解决方案是迭代整个范围,并检查当前迭代是否是以2为基数的数字带基数2增量的循环的VBA,vba,for-loop,Vba,For Loop,为了识别位掩码值的内容,我需要一个有效的VBA解决方案来迭代可能的1、2、4、8。。跳过中间的任何内容 现在,我唯一的解决方案是迭代整个范围,并检查当前迭代是否是以2为基数的数字 For i = ErrorType.[_First] To ErrorType.[_Last] If isBase2(i) Then ... End If Next i 我在想一些类似于这个Java代码片段的东西 for(int i = 0; i < x; i = Math.pow(2, i++
For i = ErrorType.[_First] To ErrorType.[_Last]
If isBase2(i) Then
...
End If
Next i
我在想一些类似于这个Java代码片段的东西
for(int i = 0; i < x; i = Math.pow(2, i++)) {
...
}
但是,我还无法在VBA中复制这一点,而不会导致无休止的循环。在java中,更多地考虑int I=1;“I0不是2的幂,”让·弗朗索瓦·科贝特(Jean-FrançoisCorbett)当然会这样描述。实际位掩码不包括0。
Dim i As Integer
i = 1
Do While i <= x
i = i * 2
Loop
Dim pow As Long
Dim i As Long
For pow = -1 To 4 'or however high you want to go
If pow = -1 Then
i = 0 ' Special case: 0 isn't a power of 2
Else
i = 2 ^ pow
End If
Debug.Print i
Next pow