【发布时间】:2013-10-25 17:46:51
【问题描述】:
我首先制作了一个 VBA 脚本来比较两个 excel 文件。然后使用 Variant 对其进行优化,如this 问题中所述。但后来,我把它改成了 VBScript。在这里,上面说的方法似乎不起作用。 还有其他更好的方法来加快这个过程吗?特别是对于大文件。
我的核心代码如下:-
For Each cell In objxlWorksheet1.UsedRange
If cell.Value <> objxlWorksheet2.Range(cell.Address).Value Then
'fill the color in the cell if there is a mismatch and Increment the counter
objxlWorksheet2.Range(cell.Address).Interior.ColorIndex = 3
counter=counter+1
End If
Next
【问题讨论】:
-
将两个范围读入数组并在内存中进行比较。您的代码每次必须读取单元格的值时都会触及工作表,这需要时间。创建存储颜色索引的第三个数组——为每个匹配值存储数字“3”,为不匹配存储数字“0”。然后循环遍历该数组并盲目更新 ColorIndex 属性。