2013-10-25 30 views
2

我第一次做了一個VBA腳本來比較兩個excel文件。然後在this問題中使用Variant優化它。但之後,我稍後將其更改爲VBScript。這裏上述方法似乎不起作用。 還有其他更好的方法來加速這個過程嗎?特別適用於大文件。有什麼辦法可以加快VBScript中的excel比較?

我的核心代碼如下: -

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 
+1

將兩個範圍讀入數組並在內存中進行比較。您的代碼每次讀取單元格的值時都會觸摸工作表,這需要時間。創建一個存儲colorindex的第三個數組 - 存儲每個匹配值的數字「3」和不匹配的「0」。然後循環訪問該數組並盲目更新ColorIndex屬性。 – JimmyPena

回答

1

這取決於它是什麼,你比較。如果您有兩張具有類似數據表的表,則使用公式代替VBA代碼會更容易。只需創建一個新工作表並輸入如下公式:=Sheet1!A1=Sheet2!A1然後您可以使用Ctrl-Find搜索False

或者,如果您可以並排複製一張紙上的數據,則可以使用條件格式突出顯示不同的值。

+0

我必須刪除一些列,並在比較之前進行一些排序操作。這應該是更通用的代碼。(刪除第一列和最後一列,不一定總是A,H)。所以我用了Vb Script。 另外我正在尋找是否有一些算法比我發佈的代碼更好。這對我來說似乎很簡單。 –

+0

你的方法沒有問題,只需要很長時間。但是,如果我們更瞭解您正在比較的內容以及您希望完成的內容,也許可以採用其他方法來做同樣的事情,而不需要逐個單元格比較。 –

相關問題