¿Cuál es el significado del uso del símbolo #
en Excel VBA?Uso del símbolo # (hash) en VBA Macro
Se utiliza la siguiente manera:
a = b /100#
que no entienden el significado de #
después de la 100
?
¿Cuál es el significado del uso del símbolo #
en Excel VBA?Uso del símbolo # (hash) en VBA Macro
Se utiliza la siguiente manera:
a = b /100#
que no entienden el significado de #
después de la 100
?
El carácter de declaración de tipo para Doble es el signo de número (#). También llamado HASH
Otros caracteres de declaración de tipo son:
no entienden el significado de # aquí.
Esto implica que cuando se evalúa la expresión, el número delante del carácter de declaración de tipo se trata como un tipo de datos específico en lugar de como una variante.
Vea este ejemplo, que son básicamente lo mismo.
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
EDITAR
Voy a explicar un poco más en detalle.
consideran este dos procedimientos
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
Pregunta: Uno de ellos se producirá un error. ¿Puedes adivinar cuál?
Ans: El primer procedimiento Sub Sample1()
fallará.
Razón:
En Sample2
, cuando lo hace b * 100#
el resultado del cálculo será de tipo Double
. Dado que está dentro de los límites de Doble, el cálculo tiene éxito y el resultado se asigna a la variable a
.
Ahora en Sample1
, cuando haga b * 100
, el resultado del cálculo será del tipo Integer
, ya que ambos operandos son de tipo entero. Pero el resultado del cálculo excede los límites del almacenamiento entero. Como resultado, se producirá un error.
Espero que ayude :)
+1 Incluso desde los viejos tiempos VB, he encontrado estos accesos directos muy útiles. :) –
@PradeepKumar: Sí, estos accesos directos son útiles, pero nunca me gustaron :) Siempre he sido muy "expresivo" con mis declaraciones, supongo: P –
Muy bien explicado. He visto a muchos desarrolladores confundirse con esto. No parecen poder distinguir entre el hecho de que la variable de memoria utilizada para el cálculo es diferente de la variable de destino de la asignación, y sus tipos de datos pueden ser diferentes. :) –