小编Jon*_*han的帖子

将数组中的每个成员变为字母数字的最快方法是什么?

最终的最终结果:

我想知道如果字符串更长,下面的结果是否会改变.我在同一台计算机上运行完全相同的测试,除了每个单元格有一个34个字符而不是4个字符的随机字符串.这些是结果:

Comintern (Regexp):       136.1  ms  
brettdj (Regexp):         139.9  ms  
Slai (Regexp):            158.4  ms  
*Original Regex:          161.0  ms*    
Comintern (AN):           170.1  ms  
Comintern (Hash):         183.6  ms  
ThunderFrame:             232.9  ms    
*Original replace:        372.9  ms*  
*Original InStr:          478.1  ms*  
CallumDA33:              1218.1 ms
Run Code Online (Sandbox Code Playgroud)

这真的显示了Regex的速度 - 所有使用Regex.replace的解决方案都明显更快,最好的是Comintern的实现.

总之,如果字符串很长,请使用数组,如果它们很短,请使用剪贴板.如果不确定,最佳结果是使用数组,但这可能会牺牲短字符串的一点性能.

最终结果:

非常感谢您提出的所有建议,显然我还有很多需要学习的地方.昨天我一直在想这个,所以我决定在家里重新运行一切.以下是最终结果,基于将这些中的每一个应用于30,000个四个字符串.

我家里的电脑是英特尔i7 @ 3.6 GHz,8GB内存,64位Windows 10和Excel 2016.与之前相似的条件我在后台运行进程,但我并没有在整个测试中积极做任何事情.

Original replace:  97.67  ms
Original InStr:    106.54 ms
Original Regex:    113.46 ms
ThunderFrame:      82.21  ms
Comintern (AN):    96.98  ms
Comintern (OR):    81.87  ms
Comintern (Hash):  101.18 ms
brettdj: …
Run Code Online (Sandbox Code Playgroud)

regex arrays excel vba excel-vba

13
推荐指数
3
解决办法
560
查看次数

标签 统计

arrays ×1

excel ×1

excel-vba ×1

regex ×1

vba ×1