我正在使用一个数据表,其中单元格的值在几行(变量)之后发生变化。因此,每次单元格的值更改时,随着我们不断向下移动,我想在该单元格上方添加一行。
我尝试使用嵌套的for循环,因为第一个循环将用于执行第二次循环61次(发生单元格更改的次数):
Sub jcapp()
Dim i As Integer
Dim j As Integer
Static k As Integer
Dim l As Integer
With ThisWorkbook.Sheets("Sheet1")
k = 3
For l = 1 To 61
For i = k + 1 To 175
j = k
If .Cells(i, 2).Value <> .Cells(i - 1, 2).Value And Not
IsEmpty(.Cells(i, 2).Value) Then
k = i
Rows(.Cells(i + 1, 1).Row).Insert shift:=xlDown
End If
Exit For
Next i
Next l
End With
End Sub
我希望在第9行,第20行等处增加行。但是,每当单元格值更改时,什么都不会发生。没有结果。
答案 0 :(得分:0)
插入(或删除)会抛出该索引。
标准方法不是试图跟踪行数,而是反向循环。
Option Explicit
Sub jcapp()
Dim i As Long
With ThisWorkbook.Sheets("Sheet1")
For i = 61 To 2 Step -1
If .Cells(i, 2).Value <> .Cells(i - 1, 2).Value Then
Debug.Print i
.Rows(.Cells(i, 1).Row).Insert shift:=xlDown
End If
Next i
End With
End Sub