如果行插入导致行数>,为什么这个Worksheet_change循环崩溃? 100?

时间:2013-08-07 21:40:39

标签: vba excel-vba excel

以下代码的目的是在col B中以数字顺序将行6从第1行编号到rowCount。当用户插入行时,数字会自动调整。例如,如果用户在行6和7之间插入新行,则新行在col B中编号为7,前一行7重新编号为8,其余行重新编号为9到rowCount。这工作正常,直到rowCount> = 100.然后当用户插入新行时,程序崩溃。为什么? 100以上的特别之处是什么?当用户插入新行时,是否有更好的方法可以自动重新编号行?

Private Sub Worksheet_change(ByVal target As Range)

Dim i As Long, rowCount As Long

rowCount = UsedRange.Rows.Count

For i = 6 To rowCount
    If Me.Cells(i, 2) <> i - 5 Then
        Me.Cells(i, 2) = i - 5
    End If
Next

1 个答案:

答案 0 :(得分:0)

在这里工作正常,

Option Explicit

Private Sub Worksheet_change(ByVal target As Range)
Application.EnableEvents = False
Dim i As Long
For i = 6 To UsedRange.Rows.Count
    If Me.Cells(i, 2) <> i - 5 Then Me.Cells(i, 2) = i - 5
    End If
Next
Application.EnableEvents = True
End Sub
'[![screenshot][1]][2]

screenshot