Символ объявления типа для Double - это знак числа (#). Также называется HASH
Другими символами объявления типа являются:
Целое число%
Long &
Валюта @
Одиночный!
Двойной #
Строка $
Не понимаю значения здесь #.
Это означает, что когда выражение оценивается, число перед
знак объявления типа обрабатывается как конкретный тип данных, а не как
Вариант.
См. этот пример, который в основном тот же.
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. В результате это будет ошибкой.