¿Qué significa esto?Notación divertida con #
if CDbl(Trim(Range("M" & r).Text)) > 0# then...
¿Qué hace el # do ?? y ¿qué hace cdbl?
¿Qué significa esto?Notación divertida con #
if CDbl(Trim(Range("M" & r).Text)) > 0# then...
¿Qué hace el # do ?? y ¿qué hace cdbl?
* 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)
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)
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
cuando escribe '0.0' en el editor de VBA, en realidad lo reescribirá como' 0 # ' –
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!
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.
¿VBA tiene el tipo' Decimal'? ¿Tiene literalmente 'Fecha' también? – ja72
Accidentalmente utilicé las funciones de conversión VB.Net. Lo he cambiado a VB6/VBA –
De acuerdo con el archivo de ayuda de VBA, sí. Es tipo 'Fecha' y 'Decimal' –