
excel中用 vba编写程序:将 A列先以单元格中后三位数为关键字按升序排序,再以前三位数按升序排序。
在excel中用vba编写程序:将A列先以单元格中后三位数为关键字按升序排序,再以前三位数按升序排序。排序前排序后...
在excel中用 vba编写程序:将 A列先以单元格中后三位数为关键字按升序排序,再以前三位数按升序排序。
排序前
排序后 展开
排序前
排序后 展开
3个回答
推荐于2016-07-30 · 知道合伙人软件行家
关注

展开全部
如果不是必须写vba程序,可以如下做:
如果必须写VBA程序,以下是示例代码:
Sub Test()
MaxCol = Sheet4.UsedRange.Columns.Count
MaxRow = Sheet4.UsedRange.Rows.Count
Sheet4.Cells(1, MaxCol + 1) = "=RIGHT(A1,3)"
Sheet4.Cells(1, MaxCol + 2) = "=LEFT(A1,3)"
Sheet4.Range(Cells(1, MaxCol + 1), Cells(1, MaxCol + 2)).Select
Selection.AutoFill Destination:=Range(Cells(1, MaxCol + 1), Cells(MaxRow, MaxCol + 2))
Cells.Select
Sheet4.Sort.SortFields.Clear
Sheet4.Sort.SortFields.Add Key:=Range(Cells(1, MaxCol + 1), Cells(MaxRow, MaxCol + 1)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
Sheet4.Sort.SortFields.Add Key:=Range(Cells(1, MaxCol + 2), Cells(MaxRow, MaxCol + 2)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Sheet4").Sort
.SetRange Sheet4.UsedRange
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheet4.Columns(MaxCol + 2).Select
Selection.Delete Shift:=xlToLeft
Sheet4.Columns(MaxCol + 1).Select
Selection.Delete Shift:=xlToLeft
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询