比较行,如果相应列的值不相等,则插入它们
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
我有两组 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