我是宏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;
它还没有用,大家都知道为什么?
答案 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
,则会在更改的单元格下方插入一行