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")
几次。
希望这个窍门!