首页 > 解决方案 > 插入一行

问题描述

嗨,当我尝试在选定的行下插入一行时遇到问题,这里是我正在使用的代码:

  For i = 1 To 150
  For k = 3 To 20

   If Cells(i, 6).value = Cells(k, 19).value Then

    Cells(i, 6).EntireRow.Select
    Selection.Insert Shift:=xlDown

  End If

 Next k
 Next i

我检查 Cells(I, 6) 的值是否等于 Cells(k, 19) 的值,在这种情况下,我必须在 Cells(I, 6) 下添加一行;问题是它可以工作,但它增加了 20 行而不是 1 行,我该如何解决?

标签: excelvbarows

解决方案


我在这里使用 x 作为标志。我也从底部开始,因为如果您添加一个空白行,那么它只会检查空白 = 空白并继续添加更多空白行

Dim i As Integer
Dim f As Boolean
Dim k As Integer

    Dim x As Boolean

    For i = 150 To 1 Step -1
      x = False
      For k = 20 To 3 Step -1
       If (Cells(i, 6).Value = Cells(k, 19).Value) And Not x Then

        Cells(i, 6).EntireRow.Insert Shift:=xlDown
        x = True

      End If

     Next k
     Next i

推荐阅读