2010-05-13 31 views

Respuesta

8

* Aquí es una hoja de trucos para las conversiones DataType *

final con:

$ : String 
% : Integer (Int32) 
& : Long (Int64) 
! : Single 
# : Double 
@ : Decimal 

Inicio con:

&H : Hex 
&O : Octal 

Convertir a:

CBool(expression) 
CByte(expression) 
CCur(expression) 
CDate(expression) 
CDbl(expression) 
CDec(expression) 
CInt(expression) 
CLng(expression) 
CLngLng(expression) (Valid on 64-bit platforms only.) 
CLngPtr(expression) 
CSng(expression) 
CStr(expression) 
CVar(expression) 
+0

¿VBA tiene el tipo' Decimal'? ¿Tiene literalmente 'Fecha' también? – ja72

+0

Accidentalmente utilicé las funciones de conversión VB.Net. Lo he cambiado a VB6/VBA –

+0

De acuerdo con el archivo de ayuda de VBA, sí. Es tipo 'Fecha' y 'Decimal' –

10

CDbl() convertir una expresión a un doble:

Un tipo de datos que contiene de doble precisión de punto flotante números como números de 64 bits en el rango -1.79769313486231E308 a -4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 a 1.79769313486232E308 para valores positivos.

"#" es el "carácter de declaración de tipo" para un doble. Seguir un número con este símbolo significa que tratará el número como un doble en lugar de intentar adivinar qué tipo de variable exacta usar (probablemente habría tratado el 0 como un entero sin esto)

+0

Un truco similar que es útil en algunos idiomas (SQL, para uno) es usar '0.0' en lugar de simplemente' 0'. Esto obligará a tratar el número como una forma de decimal en lugar de un número entero. No estoy seguro si este truco es útil en VBA. – BradC

+2

cuando escribe '0.0' en el editor de VBA, en realidad lo reescribirá como' 0 # ' –

2

CDbl lanza los contenidos a un doble valor El # indica que es un valor doble numérico. VB y VBA a veces son bastante indulgentes cuando se trata de números, ¡que pueden ser peligrosos!

3

Visual Basic usa el signo de almohadilla (#) para indicar valores de precisión doble. Entonces 0# se aplica para tratar esta constante como de tipo doble. CDbl convierte la expresión al tipo doble. * Doble significa punto flotante de doble precisión.