我正在除錯一些 VBA 代碼,并且我有一個 IIF 函式,我不明白它在做什么。它是IIF(constant And i, "TRUE", "FALSE"),我從0到獲取值的地方n。
我知道這個功能相當于IFExcel 中的功能。但是在這種情況下,條件是什么?表達數字和數字是什么意思?我運行這個示例:
Sub Sample()
For i = 0 To 20
Cells(i 1, 1) = i
Cells(i 1, 2) = 4 And i
Next i
End Sub
我得到以下值:

uj5u.com熱心網友回復:
該運算式4 And i將執行算術與運算。例子:
6: 0 0 0 0 0 1 1 0
4: 0 0 0 0 0 1 0 0
Result: 0 0 0 0 0 1 0 0
11: 0 0 0 0 1 0 1 1
4: 0 0 0 0 0 1 0 0
Result: 0 0 0 0 0 0 0 0
所以 6 AND 4 是 4 而 11 AND 4 是 0。
現在 0 被視為False,所有非 0 都被視為True。在 IIF 陳述句中使用,所有設定了第 3 位(從右數)的數字將執行TrueIIF 的 - 部分,所有其他的False.
uj5u.com熱心網友回復:
您的And運營商做了一些明智的比較:
result = expression1 And expression2
應用于數值時,And運算子對兩個數值運算式中相同位置的位進行按位比較,并根據下表設定結果中的相應位。
| 如果運算式 1 中的位是 | 運算式2中的位是 | 結果中的位是 |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
由于邏輯運算子和位運算子的優先級低于其他算術和關系運算子,因此任何按位運算都應括在括號中以確保結果準確。
因此將其轉換4為二進制會導致100. 我在下面的 3?? 列中完成了該操作,我將 1?? 列的所有數字轉換為二進制檔案。其他 2 列只是用零填充以獲得更好的可見性:

因此,查看上面的表格,只有1在同一位置的兩個位都是 a 時,才會得到 a 結果,1否則得到 a 0。這意味著如果由于按位比較(見紅色位)在右邊的 3?? 位中有 a ,你總是得到 a4作為結果。4 and i1
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/467237.html
