如果满足2个条件,VBA将插入新行

时间:2016-11-10 08:24:32

标签: excel vba

我想要实现的是在列A文本“rich”中包含的某些行之后插入新行的数量,如果同一行中的列B包含的值小于10,则在该行之后插入2行。但是如果同一行中的列B包含更高的值,则在此行之后插入1行。我不是写循环代码的最佳人选。我将不胜感激。

1 个答案:

答案 0 :(得分:1)

我设法在一段时间后完成:)

Sub macro1()
    Range("A1").Select
    ' remember the last row that contains a value
    Dim LastRow As Integer
    Dim CurrentRow As Integer
    LastRow = Range("A1").End(xlDown).Row
    CurrentRow = 1

    ' keep on incrementing the current row until we are
    ' past the last row
    Do While CurrentRow <= LastRow

        ' if the desired string is found, insert a row above
        ' the current row
        ' That also means, our last row is going to be one more
        ' row down
        ' And that also means, we must double-increment our current
        ' row
        If Range("A" & CurrentRow).Value = "rich" And Range("B" & CurrentRow).Value > 10 Then
            Range("A" & CurrentRow + 1).EntireRow.Insert xlIp
            Range("A" & CurrentRow + 1).EntireRow.Insert xlIp
            LastRow = LastRow + 2
            CurrentRow = CurrentRow + 1
        ElseIf Range("A" & CurrentRow).Value = "rich" And Range("B" & CurrentRow) < 10 Then
            Range("A" & CurrentRow + 1).EntireRow.Insert xlUp
            LastRow = LastRow + 1
            CurrentRow = CurrentRow + 1
        End If

        ' put the pointer to the next row we want to evaluate
        CurrentRow = CurrentRow + 1

    Loop

End Sub