在上一行添加下一行和列的值

时间:2016-02-02 13:01:42

标签: vba excel-vba excel

我有一个Excel文档正在处理包含行和列的表,这些表类似于我包含的图片(不是内容)。我想做两件事,其中一件是在列中的一个不同的值之后添加另一行,如图所示,我已经完成了(包括代码)。但是下一步是将列的值放在添加的行(空白)上空白/空行之后的下一行中,作为值,如图中的值Small,Med,Large。

我不是一个顽固的程序员,但我正在学习VBA,这是我在这个网站上找到的代码,用于添加一个空行:

Dim LastRow As Long
Dim i As Long

LastRow = Cells(Rows.Count, "A").End(xlUp).Row

For i = LastRow To 2 Step -1
    If i = 2 Then
        'Do nothing
    ElseIf Cells(i, "A") <> Cells(i - 1, "A") Then
        Cells(i, "A").EntireRow.Insert
    End If
Next i

你能帮我添加下一行的值吗?

Current and Desired output

1 个答案:

答案 0 :(得分:1)

您已经在填充的单元格中向上循环。每当您找到一个单元格,其中A列的值不是上面的单元格时,就会插入一行。 在if块中,只需获取B列中的值,即可获得下面的代码。 另外,当你到达第2排时为什么什么都不做?由于您要在上面插入另一个空的,因此应该包含它。 最终结果:

Dim LastRow As Long
Dim i As Long

LastRow = Cells(Rows.Count, "A").End(xlUp).Row

For i = LastRow To 2 Step -1
    If Cells(i, "A") <> Cells(i - 1, "A") Then
        Cells(i, "A").EntireRow.Insert
        Cells(i, "B").Value = Cells(i + 1, "B").Value 'i + 1 would be the next row
    End If
Next i