VBS、VB和VBA的操作EXCEL,效率怎么差这么多
有个网友发来一份表,从系统导出的客户信息,手机号码里面随机加入了一些字符,颜色为白色字号为1,要把这些字符删除,然后我用VBS写了个代码如下:程序代码:
Dim application,rng Set application = GetObject(,"excel.application") application.ScreenUpdating = false set rng = application.selection arr = rng.resize(rng.rows.count + 1,1).value For i = 1 To UBound(arr) - 1 With rng(i,1) For k = 1 To Len(arr(i,1)) If .characters(k,1).font.size > 3 Then s = s & Mid(arr(i,1),k,1) End If Next End With arr(i,1) = s s = "" Next rng.value = arr rng.font.colorindex = 1 rng.font.size = 9 application.ScreenUpdating = True Set application = Nothing set rng = nothing
数据源3万条左右,代码保存为VBS,运行时间为700秒左右。移植到VB,运行时间500多秒,转用VBA运行,结果为5秒多。
之前也遇到过一次类似的情况,目标区域10万行,选择其中的偶数行,同样的代码用VBS运行10分钟,用VBA几秒钟
呃,怎么差距这么大的?