2014-03-31 38 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

相關問題