所有处理字符串处理/操纵的内置VBA函数实际上都包含在2个“ Flavors”中,例如:
左/左$,右/右$,格式/格式$,中/中$等
这可以回溯到Basic的早期,那时您可以先指定特定数据类型的变量,然后程序员才必须使用类型指定字符而不是显式的数据类型声明。 其中一些典型的声明字符包括:“ $”表示字符串,“%”表示整数,“&”表示长整数,“#”表示Double,等等。典型的声明如下:
Dim MyDouble#
MyDouble# = 4 * Atn(1) 'Pi
Debug.Print MyDouble
相同的系统也应用于函数名称,因为以'$'结尾的函数将返回字符串,而其对等函数返回的变量如Right $和Right。
我们不再使用字符来表示数据类型,但功能仍然保留。
Left()返回Variant,而Left $()返回String。
底线是,如果您知道要将字符串处理函数的返回值放入字符串中,请始终使用该函数的“ $”版本。
一个简单的测试将证明这一点:
For i = 1 to 2000000000
strValue = Left$(strValue, 3)
Next i
由于您要强制VBA进行额外的数据类型转换(变体为字符串),因此所需时间大约是下面第二个代码片段的1/2。
For i = 1 to 2000000000
strValue = Left(strValue, 3)
Next i
在我自己的测试中,此特定函数的String风格比Variant风格快53%。
From: https://bytes.com/topic/access/insights/607468-whats-your-function-flavor
4206

被折叠的 条评论
为什么被折叠?



