Uso del simbolo # (cancelletto) nella macro VBA

Qual è il significato dell’uso del simbolo # in Excel VBA?

È usato così:

  a = b /100# 

Non capisco il significato di # dopo il 100 ?

Il carattere di dichiarazione del tipo per Double è il segno numerico (#). Chiamato anche HASH

Altri caratteri di dichiarazione del tipo sono:

  1. Numero intero %
  2. Lungo e
  3. Moneta @
  4. Single!
  5. Doppio #
  6. Stringa $

Non capisco il significato di # qui.

Ciò implica che quando l’espressione viene valutata, il numero davanti al carattere di dichiarazione del tipo viene considerato come un tipo di dati specifico anziché come Variant.

Vedi questo esempio, che sono fondamentalmente gli stessi.

 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 

MODIFICARE

Lascia che ti spieghi un po ‘più in dettaglio.

Considera queste due procedure

 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 

Domanda : uno di questi fallirà. riesci a indovinare quale?

Risposta : La 1a procedura Sub Sample1() avrà esito negativo.

Motivo :

In Sample2 , quando Sample2 b * 100# il risultato del calcolo sarà di tipo Double . Poiché si trova entro i limiti di Double, quindi il calcolo ha esito positivo e il risultato è assegnato alla variabile a .

Ora in Sample1 , quando Sample1 b * 100 il risultato del calcolo sarà di tipo Integer , poiché entrambi gli operandi sono di tipo intero. Ma il risultato del calcolo supera i limiti della memoria Integer. Di conseguenza, genererà un errore.

Spero che sia d’aiuto 🙂