在每列的末尾添加新行

时间:2021-02-11 06:24:29

标签: excel vba

我有一个名为 ABC 的工作表

enter image description here

我需要在每列值的末尾添加新行。例如,在“aaa”末尾和“bbb”末尾的 Product ID 列中,我需要将 aaa 的副本插入到 aaa 末尾的新行中,并将 bbb 的副本插入到 bbb 末尾的新行中.

Dim cell As Range 
For Each cell In Range("c2:c7") 
  If cell.Value = "aaa" Then 
    cell.EntireRow.Insert 
  End If 
Next cell 

但它在找到 aaa 值之后插入,我需要在 aaa 的末尾

1 个答案:

答案 0 :(得分:1)

您的进展非常顺利,但是,您的代码需要进行两项更改。

第一个是使 "aaa" 引用动态化,即您不希望您的代码总是寻找 "aaa",而是总是检查“循环”单元格的值。

第二个变化是循环本身。由于您的目标是插入行,因此您的表格范围将扩大,因此您的循环将无法达到其目的。相反,您应该从表格的底部循环到最顶部

这是您要测试的代码:

Sub foo()
    Dim lngRow As Long
    
    With Sheet1
        For lngRow = 10 To 3 Step -1
          If .Range("C" & lngRow).Value <> .Range("C" & lngRow + 1).Value Then
            .Range("C" & lngRow + 1).EntireRow.Insert
            .Range("C" & lngRow + 1).Value = .Range("C" & lngRow).Value
          End If
        Next lngRow
    End With
End Sub

代码运行结果如下:

enter image description here

相关问题