2015-09-09 88 views
0

我必須比較2個不同工作表中的2列,然後在第二個工作表中添加缺失的單元格。但問題是我使用了一個循環,並且花費了太多時間。是否有人知道如何比較這兩列而不使用循環。不使用循環比較2列

Set col_1 = Worksheets("Plan Traitement Risque").Range("B6:B700") 

     With ThisWorkbook.Sheets("Analyse de risque") 
     For i = 200 To 6 Step -1 
      'Test si valeur cellule feuil1!=Ax est dans Plage col_2(feuil2!A1:A50)) 
     If Application.CountIf(col_1, .Range("B" & i).Value) = 0 Then 
      'Delete ligne i feuil1 
      .Rows(i).Copy 
      Sheets("Plan Traitement Risque").Rows(i).Insert (xlShiftDown) 
End If 
    Next i 
    End With 
+1

我會盡量避免循環,但是您需要它來比較值。在你的情況下,主要的問題是插入行和CountIf()。如果將兩個範圍都複製到數組中,則可以顯着提高速度,並且只將第二個範圍寫回一次(如果包含完整函數,這會很有幫助) –

回答

1

先在excel中進行垂直查找,然後在循環中搜索NA。它會更快。工作完成後,您可以刪除查找。