比较行,如果相应列的值不相等,则插入它们

compare row's if value of corresponding column's not equal insert them

我有两组 columns.one 它们是 another.i 的子集想写一个宏来比较它们,如果它们不相等,则将第二个插入到第一个。 算法代码:

if (code-1)<>(code-2) AND (serial-1)<>(serial-2) AND (amount-1)<>(amount-2) then
 (code-1)==(code-2) AND (serial-1)==(serial-2) AND (amount-1)==(amount-2)

我想标记插入的行。

我的 table 如下所示:

code-1  serial-1    amount-1    code-2  serial-2    amount-2
1         11          111          1      11          111
3         33          333          1      11           11
                                   2      22           22
                                   3      33           33
                                   3      33          333

我要找的结果如下:

code-1  serial-1    amount-1    code-2  serial-2    amount-2
   1     11           111          1      11          111
   3     33           333          1      11          11
   1     11           11           2      22          22
   2     22           22           3      33          33
   3     33           33           3      33         333

更新

此新代码将为 运行 一个 vlookup 创建 2 个辅助列,以消除所有不符合条件的列,当宏 运行 select 要复制的单元格时并在完成后删除这两列。

但是请记住,我是根据你给我的代码编写的,所以只有在 A 到 C 列和 D 到 F 列的情况下,它才会起作用

如果有效,请记得将此代码标记为非常感谢的答案=]

新代码:

Sub yoursub()

Dim lstr1        As Long
Dim lstr2        As Long
Dim mark1        As Long

lstr2 = Sheets(1).Cells(Rows.Count, 4).End(xlUp).Row

lstr1 = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

mark1 = lstr1 - 1

Range("A1").EntireColumn.Insert
Range("A1").EntireColumn.Insert

For i = 2 To mark1

Cells(i, 2) = Cells(i, 3) & "-" & Cells(i, 4) & "-" & Cells(i, 5)

Next

For j = 2 To lstr2

Cells(j, 1).FormulaR1C1 = "=VLOOKUP(RC[5]&""-""&RC[6]&""-""&RC[7],C[1],1,FALSE)"

Next

For j = 2 To lstr2

If WorksheetFunction.IfError(Cells(j, 1), "Error") = "Error" Then

Range(Cells(j, 6), Cells(j, 8)).Copy
Cells(lstr1, 3).PasteSpecial xlPasteValues
lstr1 = Sheets(1).Cells(Rows.Count, 3).End(xlUp).Row + 1

End If

Next

Range("A1").EntireColumn.Delete
Range("A1").EntireColumn.Delete

End Sub