45 votes

Utilisation du symbole # (hash) dans une macro VBA

Quelle est la signification de l'utilisation de la # symbole dans Excel vba ?

Il est utilisé comme suit :

 a = b /100#

Je ne comprends pas la signification de # après les 100.

77voto

Siddharth Rout Points 63935

Le caractère de déclaration de type pour Double est le signe du nombre (#). On l'appelle aussi HASH

Les autres caractères de déclaration de type sont :

  1. Nombre entier de %.
  2. Long &
  3. Monnaie @
  4. Célibataire !
  5. Double #
  6. String $

Je ne comprends pas la signification de # ici.

Cela implique que lorsque l'expression est évaluée, le nombre devant le caractère de déclaration de type caractère de déclaration de type est traité comme un type de données spécifique plutôt que comme une Variante.

Voir cet exemple, qui sont fondamentalement les mêmes.

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

EDIT

Permettez-moi de l'expliquer un peu plus en détail.

Considérez ces deux procédures

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

Question : L'un d'entre eux va échouer. Pouvez-vous deviner lequel ?

Ans : La 1ère procédure Sub Sample1() échouera.

Raison :

Sur Sample2 quand vous le faites b * 100# le résultat du calcul sera de type Double . Puisqu'il est dans les limites de Double, le calcul réussit et le résultat est affecté à la variable a .

Maintenant dans Sample1 quand vous le faites b * 100 le résultat du calcul sera de type Integer puisque les deux opérandes sont de type entier. Mais le résultat du calcul dépasse les limites de la mémoire Integer. En conséquence, il y aura une erreur.

J'espère que cela vous aidera :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X