vba - excel - 如果value =下一行值,则复制另一个值

时间:2016-11-29 14:17:21

标签: excel vba excel-vba

早上好,伙计们, 我在修改文件中的数据时遇到问题。 我希望我的脚本将H列中的数据作为参考,只有当数据等于下一行的数据时才进行操作,复制第二行的第I列和第J列的值并粘贴它们位于顶行J列之后的第一个空闲单元格中。

现在文件是这样组织的 Now the file is organized so

我希望它变得如此

I would like it to become so

我能写的唯一代码是:

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

但显然这是错误的,并没有最低限度的我...

我真的被困了......请帮帮我。

1 个答案:

答案 0 :(得分:2)

以下代码已经过测试,可以处理我的样本数据。

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