VBA中很多字符类处理函数以及一些其他函数(比如Environ),其函数有两种不同的版本,一种是正常的,一种是后面加了个美元符号$,比如:
Chr$, ChrB$, Command$
CurDir$ Date$ Dir$
Error$ Format$ Hex$
Input$ InputB$ LCase$
Left$ LeftB$ LTrim$
Mid$ MidB$ Oct$
Right$ RightB$ RTrim$
Space$ Str$ String$
Time$ Trim$ UCase$
加了美元符号$,其中$表示String,也就是明确指定传回的是一个字符串。
不加美元符号的,函数返回值为Variant 类型的变量。
(注:VB中的变量类型,和其他语言中类似,也有字符类型,但是还有个特殊的,不加限制的Variant类型,即变量类型,可以在需要的时候,转换为其他类型,赋值给与其他类型。由于不限制类型,所以会占用最大的内存,以兼容其他类型。)
因此,加了美元符号的函数,直接表明需要返回的是string字符串类型,所以,相对Variant类型,效率会有一定提高。
而实际代码运行起来,效率差别一般不大。
再附上官方的解释:
Visual Basic 6.0
在 Visual Basic 6.0 中,某些函数有两个版本,一个返回 String 值,一个返回 Variant 值。这些函数对通过美元符号 ($) 后缀来与 String 版本区分开来;例如,Chr 和 Chr$。
Visual Basic 2005
Visual Basic 2005 以单个函数替换每个函数对。Variant 版本已停止,可以使用 $ 后缀来调用 String 版本,也可以不使用 $ 后缀调用该版本。
尽管只定义了 Trim,Visual Basic 2005 也接受 Trim$,因为 $ 充当 String 数据类型的标识符类型字符。
【引用】
1。在函数后面加一个美元符号($)有什么用?
http://access911.net/fixhtm/72FAB11E17DCEDF3.htm
2。字符串 ($) 函数(针对 Visual Basic 6.0 用户)
http://msdn.microsoft.com/zh-cn/library/5eaw1esb(v=vs.80).aspx
3。Trim 函数 与 Trim$ 函数 有什么区别?
http://topic.csdn.net/t/20060706/16/4864564.html
转载请注明:在路上 » 【整理】VBA中的有些函数后面的美元符号$的含义