Использование символа # (хэш) в макросе VBA

34

В чем смысл использования символа # в Excel VBA?

Он используется следующим образом:

 a = b /100#

Я не понимаю значение # после 100?

Теги:
excel-vba

1 ответ

53
Лучший ответ

Символ объявления типа для 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. В результате это будет ошибкой.

Надеюсь, это поможет:)

  • 0
    +1 Даже со старых времен VB я нашел эти ярлыки очень удобными. :)
  • 2
    @PradeepKumar: Да, эти ярлыки удобны, но они мне никогда не нравились :) Я всегда был очень "выразительным" с моими заявлениями, я думаю: P
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню