0

下面代码的目的是在 col B 中按数字顺序将第 6 行编号为 rowCount,从 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
4

1 回答 1

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]

截屏

于 2013-09-07T02:43:36.150 回答