vba – excel – 如果value = next row value,则复制另一个值

早上好,我在修改文件中的数据时遇到了问题。 我希望我的脚本将H列中的数据作为参考,并且只有在数据等于下一行的数据时才采取行动,复制第二行的列I和J的值并粘贴到第一行中列J后的第一个空闲单元格。

现在这个文件是这样组织的 现在这个文件是这样组织的

我希望它变成这样

我希望它变成这样

我能写的唯一的代码是这样的:

With ws1 For row = 2 To 1000 If .Cells(8, row).Value Like .Cells(8, row + 1).Value Then .Cells(9 - 2, row).Value = .Cells(9, row + 1).Value End If Next End With 

但显然这是错误的,它不是最低限度,我会…

我真的陷入了困境….请帮助我。

以下代码已经过testing,适用于我的示例数据。

 With ws1 Dim lRow As Long lRow = .Range("H" & .Rows.Count).End(xlUp).Row Dim i As Long For i = lRow To 2 Step -1 If .Range("H" & i) = .Range("H" & i - 1) Then .Range(.Range("I" & i), .Range("I" & i).End(xlToRight)).Copy _ Destination:=.Range("H" & i - 1).End(xlToRight).Offset(, 1) .Range(.Range("I" & i), .Range("I" & i).End(xlToRight)).ClearContents 'uncomment below line if you want to remove rows where data is copied up '.Range("H" & i).EntireRow.Delete End If Next End With