Excel 根据另一对列更新两对列
我在一个工作表中有两组三个分组列。这条路长达30000行。样本数据如下:Excel 根据另一对列更新两对列,excel,multiple-columns,vba,Excel,Multiple Columns,Vba,我在一个工作表中有两组三个分组列。这条路长达30000行。样本数据如下: code Serial Amount code Serial Amount 1111 2346 2000000 2222 5555 300000 2222 4567 4000000 3333 6666 700000 3333 4545 7000000 1111 7777 8000000
code Serial Amount code Serial Amount
1111 2346 2000000 2222 5555 300000
2222 4567 4000000 3333 6666 700000
3333 4545 7000000 1111 7777 8000000
1111 8888 550000
1111 9999 600000
第一个代码列中的一些值在第二个代码列中重复,但顺序混乱。我想将第二个代码列的值与第一个代码列的值匹配,并根据匹配情况更新序列值和金额值。我能描述逻辑的最好方式是:
IF (Code(1)==Code(2))
THEN
(Amount(1) ==Amount(2) )
and
(Serial(1)==Serial(2))
正如您在示例代码(2)列中看到的,我们有三个重复的1111值,但在代码(1)列中,我们只有一个1111。如果与其他两个时间匹配的1111在代码(1)中不存在任何1111,我希望excel更新第1行中的序列金额。插入序列(2)金额(2)代码(2)作为序列(1)金额(1)代码(1)中的新行
我尝试在下面的代码它更新唯一的代码,但它不能插入重复的代码,如第二和第三1111与它的序列号和金额
Sub checklist()
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Dim cell As Range
For Each cell In Range("a1:a" & LastRow)
For Each cell2 In Range("D1:D" & LastRow)
If cell.Offset(0, 0) <> "" And cell.Offset(0, 0) = cell2.Offset(0, 0) Then
cell2.Offset(0, 0) = cell.Offset(0, 0)
cell2.Offset(0, 1) = cell.Offset(0, 1)
cell2.Offset(0, 2) = cell.Offset(0, 2)
End If
Next
Next
code Serial Amount code Serial Amount
1111 7777 8000000 2222 5555 300000
1111 8888 550000 3333 6666 700000
1111 9999 600000 1111 7777 8000000
2222 5555 300000 1111 8888 550000
3333 6666 700000 1111 9999 600000