有趣的符号与#

时间:2010-05-13 18:00:08

标签: excel vba excel-vba

这是什么意思?

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

#做什么? 什么是cdbl呢?

4 个答案:

答案 0 :(得分:10)

CDbl()将表达式转换为Double:

  

保存双精度浮点数据的数据类型   数字为范围内的64位数字   -1.79769313486231E308至-4.94065645841247E-324为负值; 4.94065645841247E-324至   1.79769313486232E308为正值。

“#”是Double的“类型声明字符”。 使用此符号后面的数字意味着它将数字视为双精度而不是试图猜测要使用的确切变量类型(如果没有这个,它可能会将0视为整数)

答案 1 :(得分:9)

****这是DataTypes的备忘单****

变量结束:

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

开始于:

&H : Hex
&O : Octal

VB与VB.Net(reference)之间的比较

Visual Studio .Net添加了文字类型(reference

值结束时:(有关更完整的列表,请参阅参考资料)

S : Short (Int16)
I : Integer (Int32)
L : Long (Int64)
F : Single
R : Double
D : Decimal

转换为:

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)

答案 2 :(得分:3)

Visual Basic使用井号(#)表示双精度值。所以0#强制将此常量视为double类型。 CDbl将表达式转换为double类型。 * Double表示双精度浮点。

答案 3 :(得分:2)

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