有趣的符号与#

l--*_*''' 14 excel vba excel-vba

这是什么意思?

if CDbl(Trim(Range("M" & r).Text)) > 0# then...
Run Code Online (Sandbox Code Playgroud)

#做什么?什么是cdbl呢?

Bra*_*adC 10

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

一种数据类型,对于负值,将双精度浮点数保存为范围-1.79769313486231E308到-4.94065645841247E-324的64位数字; 4.94065645841247E-324至1.79769313486232E308为正值.

"#"是Double的"类型声明字符".使用此符号后面的数字表示它会将数字视为double,而不是试图猜测要使用的确切变量类型(如果没有这个,它可能会将0视为整数)

  • 当你在VBA编辑器中输入"0.0"时,它实际上会将其重写为"0#" (2认同)

Ger*_*ell 9

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

变量结束:

$ : String
% : Integer (Int16)
& : Long (Int32)
! : Single
# : Double
@ : Decimal
Run Code Online (Sandbox Code Playgroud)

从...开始:

&H : Hex
&O : Octal
Run Code Online (Sandbox Code Playgroud)

VB与VB.Net的比较(参考)

Visual Studio .Net添加了文字类型(参考)

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

S : Short (Int16)
I : Integer (Int32)
L : Long (Int64)
F : Single
R : Double
D : Decimal
Run Code Online (Sandbox Code Playgroud)

转换成:

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)
Run Code Online (Sandbox Code Playgroud)