这个问题在这里已经有了答案:
What does the $ symbol do in VBA?
(5 个回答)
3年前关闭。
使用返回字符串(如 Left
)的内置函数有什么区别吗?或使用与 $
相同的功能附加(Left$
)?
这个的输出:
Debug.Print Left("Foo", 2)
Debug.Print Left$("Foo", 2)
总是
Fo
Fo
我怀疑这完全是一回事,
$
版本仅出于某些兼容性原因而存在。
最佳答案
类型化函数(以 $
结尾的函数)返回 String
.未键入的版本返回 Variant
.在内部,这些由一对不同的函数处理(在 Left
的情况下,它是 _B_str_Left
和 _B_var_Left
)。
如果您将返回值分配给 String
或期望 String
的参数, 使用类型化版本 ( Left$
) 避免隐式转换为 Variant
.同样,如果您分配给 Variant
,使用非类型化版本可以避免强制转换。
关于excel - 带有 $ 的内置字符串函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52628282/