vba - sha256 excel
Desbordamiento al calcular una const en VBA (4)
Esta declaración causa un desbordamiento en VBA:
Const OVERFLOWS As Long = 10 * 60 * 60
mientras que establecer el valor directamente está bien:
Const COMPILES_OK As Long = 36000
¿Cómo persuadir a VBA para tratar enteros literales como largos?
Gracias
El carácter tipo también se puede agregar a los literales: Const OVERFLOWS As Long = (10 y * 60 * 60) (uno es suficiente en realidad debido a la forma en que el motor VBA evalúa la expresión).
Agregue el sufijo long
&
a al menos un número:
Const OVERFLOWS As Long = 10& * 60 * 60
Tenga en cuenta que usar la función CLNG
para convertir los valores en long
no funcionará, porque VBA no permite asignar el valor de retorno de una función a una constante.
Para aquellos que encuentran & el símbolo un poco esotérico, una alternativa es usar la función CLNG que convierte un número a largo
Const OVERFLOWS As Long = CLNG(10) * 60 * 60
entonces podrías hacer algo similar para una constante simple
Const OVERFLOWS As Single = CSNG(10) * 60 * 60
http://support.microsoft.com/kb/191713 es un buen resumen de los caracteres de declaración de tipo disponibles en VBA / VB4-6.