使用$构建字符串函数

Jab*_*cky 1 excel vba

使用返回字符串的内置函数Left或使用相同的函数和$附加(Left$)之间有什么区别吗?

这个输出:

Debug.Print Left("Foo", 2)
Debug.Print Left$("Foo", 2)
Run Code Online (Sandbox Code Playgroud)

总是

Fo
Fo
Run Code Online (Sandbox Code Playgroud)

我怀疑它是完全相同的,并且$版本仅出于某些兼容性原因而存在.

Com*_*ern 5

键入的函数(以a结尾的函数$)返回a String.un-typed版本返回一个Variant.在内部,这些由一对不同的函数处理(在情况下Left,它是_B_str_Left_B_var_Left).

如果要将返回值String赋给a 或期望a的参数String,则使用类型化版本(Left$)可以避免对a的隐式强制转换Variant.同样,如果您要分配给a Variant,则使用un-typed版本可以避免强制转换.