【问题标题】:Add value of next row and column on previous row在上一行添加下一行和列的值
【发布时间】:2016-02-02 13:01:42
【问题描述】:

我有一个 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

【问题讨论】:

    标签: vba excel


    【解决方案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
    

    【讨论】:

    • 非常感谢瑞克!尽管这是一个简单的调整,但对我来说,这就像火箭科学一样,我对 VBA 的经验几乎为零。
    • 继续!我真的推荐 Ron de Bruin 的网站 rondebruin.nl、Chip Pearson 的网站 cpearson.com/Excel/MainPage.aspx 和 Ozgrid ozgrid.com 这些都是 VBA 开发者入门的好资源。
    猜你喜欢
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 2022-11-11
    • 2014-12-13
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多