Excel VBA:当我删除一行,有我的编号列表更新

我有从A8行开始的数据,其中A填充了每行增加1的数字。 我遇到了一个问题,如果我删除了一行,这些数字现在是失序(例如:1,2,3,5)。 我希望我的macros能够更新这些数字,如果我最终删除一行数据。 我有一个工作表变更子,做了一些改变后做了一些其他的事情,所以我正在考虑添加这个部分到最后。

任何帮助将是伟大的。

完整的macros是太长,但在这里:

If Target.Cells.Count > 1000 Then Application.EnableEvents = False If Worksheets("Testing Sheet").Range("H2").Value = "" Then Worksheets("Testing Sheet").Range("H2").Value = "SKU " & Worksheets("Detailed SKU List").Cells(Target.Row, 2).Value & " deleted on " & Date Else Worksheets("Testing Sheet").Range("H1").End(xlDown).Offset(1, 0).Value = "SKU " & Worksheets("Detailed SKU List").Cells(Target.Row, 2).Value & " deleted on " & Date End If Worksheets("Testing Sheet").Range("H1").End(xlDown).Font.Size = 8 Worksheets("Testing Sheet").Range("H1").End(xlDown).Interior.Color = rgbLightBlue 'Updates the row numbers Application.EnableEvents = True Exit Sub End If 

正如评论中所述,我并不是按照你提议的方式来做事情,但是要做到这一点的代码如下:

 ' Set the cells starting at A8 and all the way down to "ROW-7" (since you start at row 8, it starts at 1 and continues onward) Worksheets("Testing Sheet").Range(Worksheets("Testing Sheet").Range("A8"), Worksheets("Testing Sheet").Range("A8").End(xlDown)).FormulaR1C1 = "=ROW()-7" ' Convert the formula to a value Worksheets("Testing Sheet").Range(Worksheets("Testing Sheet").Range("A8"), Worksheets("Testing Sheet").Range("A8").End(xlDown)).Value = _ Worksheets("Testing Sheet").Range(Worksheets("Testing Sheet").Range("A8"), Worksheets("Testing Sheet").Range("A8").End(xlDown)).Value 

这很长,但那是因为我在每行代码中引用Worksheets("Testing Sheet")几次。

希望这个窍门!