如何在VBA中复制匹配号码或非匹配号码

时间:2014-11-03 03:56:57

标签: vba excel-vba excel

如何在两张纸之间找到匹配或不匹配的数字,并将匹配的数字复制到sheet3列A和B中以获取非匹配数字。这是我的代码,但有些代码不起作用。

      For i = 1 To lastrow
         For ii = 1 To xlastrow
              If Worksheets("sheet1").Cells(i,1) = Worksheets("sheet2").Cells(ii, 1) Then
                   Worksheets("sheet3").Range("A" & x) = Worksheets("sheet1").Cells(i, 1)                  
                    x = x + 1
              ElseIf Worksheets("sheet1").Cells(i,1) <> Worksheets("sheet2").Cells(ii, 1) Then
                   Worksheets("sheet3").Range("B" & x) = Worksheets("sheet1").Cells(i, 1)                  
                    x = x + 1

         Next ii
       Next i

1 个答案:

答案 0 :(得分:0)

excel没有回应我并不感到惊讶。

如果我理解正确的话,你运行的是一个嵌套循环,每个迭代次数为4000到5000次,所以最多可以进行25,000,000次迭代,在此期间你会引用多个电子表格单元格值。

使用vlookup等工作表函数可能会更好地完成你想要做的事情(不完全清楚)。

如果你必须使用嵌套循环,那么你可以做的一件事就是将所有的值首先读入数组并循环遍历这个数组,而不是直接遍历电子表格单元格。