В чем смысл использования символа #
в Excel VBA?
Он используется следующим образом:
a = b /100#
Я не понимаю значение #
после 100
?
Символ объявления типа для Double - это знак числа (#). Также называется HASH
Другими символами объявления типа являются:
Не понимаю значения здесь #.
Это означает, что когда выражение оценивается, число перед знак объявления типа обрабатывается как конкретный тип данных, а не как Вариант.
См. этот пример, который в основном тот же.
Sub Sample1()
Dim a#
a = 1.2
Debug.Print a
End Sub
Sub Sample2()
Dim a As Double
a = 1.2
Debug.Print a
End Sub
ИЗМЕНИТЬ
Позвольте мне объяснить это немного подробнее.
Рассмотрим две процедуры:
Sub Sample1()
Dim a As Double, b As Integer
b = 32767
a = b * 100
Debug.Print a
End Sub
Sub Sample2()
Dim a As Double, b As Integer
b = 32767
a = b * 100#
Debug.Print a
End Sub
Вопрос. Один из них потерпит неудачу. Можете ли вы догадаться, какой из них?
Ans: первая процедура Sub Sample1()
завершится с ошибкой.
Причина:
В Sample2
, когда вы делаете b * 100#
, результат вычисления будет иметь тип Double
. Поскольку он находится в пределах Double, поэтому вычисление завершается успешно, и результат присваивается переменной a
.
Теперь в Sample1
, когда вы делаете b * 100
, результат вычисления будет иметь тип Integer
, так как оба операнда имеют тип integer. Но результат вычисления превышает пределы хранилища Integer. В результате это будет ошибкой.
Надеюсь, это поможет:)