Целый день убил на поиск ошибки в коде, пока не понял, что булевское True считается равным -1. Почему так? Я всегда считал, что True = 1, поэтому просто использовал значение булевской переменной в вычислениях. Ниже привожу простой пример, который в результате выдаёт -1.
Код
Sub test()
Dim n As Boolean
Dim m as Integer
n = True
m = 1
MsgBox (n * m)
End Sub
Объясните, пожалуйста, почему результат с минусом. Проверено на Excel 2010 и Excel 2013. То, что можно заводить дополнительные переменные или ветки по условиям, я понимаю, но меня интересует сам факт отрицательного True.
Добрый день! Подскажите, можно ли сделать так, чтобы в конкретном файле могли работать только макросы, которые написаны в нём, а макросы из других файлов не могли изменять или считывать информацию из этого файла? P.S.: запаролить файл не предлагать, нельзя :)