2014-03-31 37 views
-1

我有了完全一样的列,但dirosa一个非常大的Excel文件。许多行。我需要VBA脚本的帮助来比较sheet1中的每个完整Eos和sheet2如果它没有找到一对我希望它写入sheet3中的行。 它非常重要,脚本从第1行开始在sheet1中,然后在sheet2中循环遍历整个Range来检查它是否喜欢一对。如果找不到匹配,那么我希望它在sheet3中写入该行。在Sheet1中的每一行进行比较,以每行中的Sheet2中 - 没有对写在表Sheet 3 - HARD

请大家帮忙,我可以得到!!

使用Excel 2010 - VBA脚本请

回答

0

您可以使用循环。如果列中有很多行,这可能需要很长时间。否则,它工作正常。基本上,代码从sheet1获取每个值,并将其与sheet2的每个值进行比较,如果未找到匹配项,则将其写入sheet3中。然后重复相同的事情,但将sheet2值与sheet1值进行比较。

Sub Compare() 

'Get Lengths of the Columns 
Z_1 = ActiveWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row 
Z_2 = ActiveWorkbook.Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row 
'Variable row index for Sheet3 
a = 1 

'Find exclusive values in sheet1 
For i = 1 To Z_1 
    j = 1 
    Do Until ActiveWorkbook.Sheets(1).Cells(i, 1) = ActiveWorkbook.Sheets(2).Cells(j, 1) Or j > Z_2 
     j = j + 1 
    Loop 
    If ActiveWorkbook.Sheets(1).Cells(i, 1) <> ActiveWorkbook.Sheets(2).Cells(j, 1) Then 
     ActiveWorkbook.Sheets(3).Cells(a, 1) = ActiveWorkbook.Sheets(1).Cells(i, 1) 
     a = a + 1 
    End If 
Next i 

'Find exclusive values in sheet2 
For i = 1 To Z_2 
    j = 1 
    Do Until ActiveWorkbook.Sheets(2).Cells(i, 1) = ActiveWorkbook.Sheets(1).Cells(j, 1) Or j > Z_1 
     j = j + 1 
    Loop 
    If ActiveWorkbook.Sheets(2).Cells(i, 1) <> ActiveWorkbook.Sheets(1).Cells(j, 1) Then 
     ActiveWorkbook.Sheets(3).Cells(a, 1) = ActiveWorkbook.Sheets(2).Cells(i, 1) 
     a = a + 1 
    End If 
Next i 

End Sub 
+0

它不工作 - 它只是比较列A而不是整行。这怎么解决?脚本比较整行是很重要的。 – user3480206

相关问题