Оценить возвращает -1 для ИСТИНА?(Почему не 1) - PullRequest
0 голосов
/ 31 декабря 2018

Я помогал с другим вопросом и понял, что использование Evaluate в VBA, похоже, возвращает -1 для TRUE операторов.

Данные:

Column A    Column B
A           A
A           B
C           C

Итакесли я поставлю =INT(A2=B2) и потяну вниз, я получу 1, 0, 1, что я ожидаю.

Однако, используя следующий VBA, я получу -1, 0, -1.

For i = 2 To 4
    Cells(i, 4).Value = Evaluate(Int(Cells(i, 1) = Cells(i, 2)))
Next i

Зачем EVALUATE использовать -1 для TRUE?

1 Ответ

0 голосов
/ 31 декабря 2018

VBA использует -1 для значения True.СрВ C и C ++, использующих 1.

-1, все биты установлены в 1 в целочисленном типе со знаком со знаком 2, поэтому выбор имеет некоторый смысл.

Выбор возвращается к DOS BASIC (и другие ОСНОВНЫЕ, такие как на старом BBC Micro), который предшествовал объектной модели компонентов середины 1990-х годов, которая все еще используется сегодня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...