Excel VBA:删除行时,更新编号列表
我有从A8行开始的数据,其中A由每行增加1的数字填充。我遇到了一个问题,如果我删除一行,这些数字现在就不符合顺序(例如:1,2,3,5)。如果我最终删除了一行数据,我希望我的宏能够更新这些数字。我有一个工作表变更子模块,一旦发生变更,它会做一些其他的事情,所以我想把这部分添加到最后 任何帮助都会很好 完整宏太长,但此处:Excel VBA:删除行时,更新编号列表,vba,excel,Vba,Excel,我有从A8行开始的数据,其中A由每行增加1的数字填充。我遇到了一个问题,如果我删除一行,这些数字现在就不符合顺序(例如:1,2,3,5)。如果我最终删除了一行数据,我希望我的宏能够更新这些数字。我有一个工作表变更子模块,一旦发生变更,它会做一些其他的事情,所以我想把这部分添加到最后 任何帮助都会很好 完整宏太长,但此处: If Target.Cells.Count > 1000 Then Application.EnableEvents = False If Worksh
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
它很长,但那是因为我在每行代码中引用了几次工作表(“测试表”)
希望这能奏效 Excel中有一个功能,您可以告诉它用递增的数字填充列,而不需要宏来完成。基本上,这个单元格比它上面的单元格多一个。当你删除一行时,它会自动更新,因为这只是一个计算。我希望它在我实际运行宏后自动更新。这样用户就不必手动操作@robertharvey这是一个编程网站,而不是办公网站。发布你的宏,这样我们就可以看一看。@RobertHarvey我不想发布宏,因为它与我的问题关系不大。我希望这是对我已经制作的宏的一个补充。我知道我可以手动执行此操作,但我提出的问题是为了让人们更容易使用。请在空白处插入代码。好。。。