我需要制作一个宏来比较两列寻找重复单元格。
我目前正在使用这个简单的双循环算法
for i = 0 To ColumnASize
Cell1 = Sheet.getCellByPosition(0,i)
for j = 0 to ColumnBSi
Cell2 = Sheet.getCellByPosition(1,j)
' Comparison happens here
Next j
Next i
然而,由于每列中有1000多个项目,因此该算法非常慢且效率低下。有没有人知道/有更好的方法来做到这一点?
答案 0 :(得分:0)
如果要确保col A中的任何字符串都不等于col B中的任何字符串,那么现有算法的顺序为n ^ 2。您可以通过以下方式改进:
1)对col A或其副本(order nlogn)进行排序
2)对col B或其副本(order nlogn)进行排序
3)通过列表遍历查找重复项,请参阅this上一个答案(顺序n)。
那应该给你一个订单nlogn解决方案,我不认为你可以做得更好。