【问题标题】:Compare each row in sheet1 to each row in sheet2 -no pair write in sheet3 - HARD将 sheet1 中的每一行与 sheet2 中的每一行进行比较 - 在​​ sheet3 中没有对写入 - 硬
【发布时间】:2014-03-31 07:42:55
【问题描述】:

我有一个非常大的 Excel 文件,其中包含完全相同的列,但 dirosa。 ent 很多行。我需要 VBA 脚本的帮助来比较 sheet1 中的每个整个 Eos 和 sheet2 如果它没有找到一对我希望它在 sheet3 中写入行。 脚本从 sheet1 的第 1 行开始,然后在 sheet2 中循环真正的整个 Range 以检查它是否喜欢一对,这一点非常重要。如果它找不到匹配项,那么我希望它在 sheet3 中写入该行。

请需要我能得到的所有帮助!

请使用 Excel 2010 - VBA 脚本

【问题讨论】:

    标签: vba comparison compare rows


    【解决方案1】:

    你可以用循环来做到这一点。如果您的列中有很多行,这可能需要很长时间。否则它工作正常。基本上,代码从 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
    

    【讨论】:

    • 它不起作用 - 它只比较 A 列而不是整行。如何解决?脚本比较整行很重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多