【问题标题】:If condition - My loop copies my last if condition through the entire loop rangeIf 条件 - 我的循环在整个循环范围内复制我的最后一个 if 条件
【发布时间】:2017-01-11 15:08:35
【问题描述】:

我正在尝试识别显示数字 68700 的所有行,然后在下面添加一行,并复制所述行,然后粘贴其副本。

它在每一行中添加这一行,直到 500。我相信有一个简单的方法可以解决这个问题,但我对 VBA 的熟练程度不足以弄清楚。

For Z = 2 To 500
    If Range("E" & Z) = 68700 Then
        Rows(Z + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Rows(Z).Copy
        Rows(Z + 1).PasteSpecial xlPasteValues
    End If
Next Z

【问题讨论】:

    标签: vba excel loops if-statement


    【解决方案1】:

    使用反向循环,因为在添加每一行后,您的范围将超出第 500 行。

    试试这个(未经测试

    Sub Sample()
        Dim ws As Worksheet
        Dim i As Long
    
        '~~> Change this to the relevant sheet
        Set ws = ThisWorkbook.Sheets("Sheet1")
    
        With ws
            For i = 500 To 2 Step -1
                If .Range("E" & i) = 68700 Then
                    .Rows(i + 1).Insert Shift:=xlDown
                    .Rows(i).Copy .Rows(i + 1)
                End If
            Next i
        End With
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      • 2016-02-03
      相关资源
      最近更新 更多