宇宙尽头是WPS之——【Excel】一个自动重新排序的宏
1. 目的
你是否在做一个表格排序,但只能知道某几个行之间的相对顺序,而可能排着排着发现后面还有顺序更靠前的项,而不得不将排好的序号重新+1+1……
所以你需要一个宏,它可以知道你输入了一个已经存在的序号,并以那个序号为准,自动修改其他序号
举两个例子:
原始 | 修改 | 修改后 |
---|---|---|
3 | 3 | |
3 | 4 | |
7 | 7 | |
2 | 2 | |
1 | 1 | |
原始 | 修改 | 修改后 |
---|---|---|
3 | 4 | |
4 | 5 | |
7 | 2 | 2 |
2 | 3 | |
1 | 1 | |
2. 宏代码
Sub Worksheet_Change(ByVal Target As Range)If Not Intersect(Target, Target.Worksheet.Range("A:A")) Is Nothing ThenDim ws As WorksheetSet ws = Target.WorksheetDim userInputRow As IntegeruserInputRow = Target.RowDim userInputValue As IntegeruserInputValue = Target.ValueDim i As IntegerDim lastRow As IntegerlastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).RowFor i = 1 To lastRowIf i <> userInputRow ThenIf ws.Cells(i, 1).Value = userInputValue Thenws.Cells(i, 1).Value = userInputValue + 1End IfEnd IfNext iEnd If
End Sub
宏怎么用就不多说了,这里是把排序列定为A列,可以按需改