根据单元格值插入行

时间:2017-07-23 06:46:55

标签: excel excel-vba excel-formula vba

我是宏Excel函数的新手,我试图在特定列的单元格值发生更改时插入一行。例如,



row_no       B     
1            p
2            p
3            p
4            q
5            q
6            q
7            q




当第1列中的值发生更改时,应在第3行插入一行。你有什么想法?

现在,这是我的代码。



  Sub MySub()
  Do While B1 <> B2
    CurrentSheet.Range("a1:i1").EntireRow.Insert
  Loop
  End Sub
&#13;
&#13;
&#13;

它还没有用,大家都知道为什么?

2 个答案:

答案 0 :(得分:1)

试试这段代码:

Sub Demo()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long

    Set ws = ThisWorkbook.Sheets("Sheet1")  'set you data sheet here
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row  'get the last row in column A
    For i = lastRow To 2 Step -1    'loop from last row to row 2
        If ws.Range("A" & i) <> ws.Range("A" & i - 1) Then  'compare value if not same
            ws.Range("A" & i).EntireRow.Insert  'if value are not same insert row
        End If
    Next i
End Sub

答案 1 :(得分:0)

将以下内容插入 Sheet1(Sheet1) VBA模块(或与您希望使用此功能的工作表相关的模块)

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 1 Then Rows(Target.Row + 1).EntireRow.Insert
    Application.EnableEvents = True
End Sub

如果该单元格的列号为第1列或 A

,则会在更改的单元格下方插入一行