有趣的符号#

这是什么意思?

if CDbl(Trim(Range("M" & r).Text)) > 0# then... 

#做什么? 和cdbl做什么?

* 这是一个DataType转换的备忘单 *

结束于:

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

从…开始:

 &H : Hex &O : Octal 

转换成:

 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()将expression式转换为Double:

一个数据types,它将双精度浮点数保存为64位数字,范围为-1.79769313486231E308到-4.94065645841247E-324(对于负值); 4.94065645841247E-324至1.79769313486232E308为正值。

“#”是Double的“types声明字符”。 用这个符号后面的数字意味着它将把数字视为一个double,而不是试图猜测使用了什么确切的variablestypes(它可能已经将0视为一个整数,而没有这个)

Visual Basic使用井号(#)来表示双精度值。 所以0#强制把这个常量当作doubletypes来处理。 CDbl将expression式转换为doubletypes。 * Double表示双精度浮点。

CDbl将内容转换为双精度值。 #表示它是一个数字双精度值。 当你处理数字时,VB和VBA有时是相当宽容的,这可能是危险的!