Потому что, если вы сравните 1
с 1
, это True
, поэтому 1 = 1
равно True
, а True
считается -1
в VBA по определению, и вы записываете этот результат в свою переменную iX
.
Этот iX = 1 = 1
оценивается так же, как iX = (1 = 1)
, и это iX = True
, а поскольку iX
равно Integer
, True
преобразуется в числовое c значение -1
.
По определению в VBA:
True
равно -1
False
равно 0
Но в формулах Excel
True
равно 1
False
равно 0