1、打开Excel表格,点击【开发工具】、【Visual Basic】调出VBE编辑器。
2、点击【插入】、【模块】。
3、在模块代码框里边输入以下VBA程序代码。Sub NumberPaixu()Dim 坡纠课柩i1, i2, i3, str1O荏鱿胫协n Error Resume NextApplication.ScreenUpdating = False '关闭屏幕显示更新Set mysheet3 = ThisWorkbook.Worksheets("Sheet3") '定义工作表Sheet3For i1 = 2 To 1000 '从第2行到1000行Set MyCell = mysheet3.Cells(i1, 1) '定义单元格 If MyCell <> "" Then '如果单元格不是空白,则 For i2 = 1 To Len(MyCell) '对单元格里边的每一个字符进行截取、判断 str1 = Mid(MyCell, i2, 1) If IsNumeric(str1) = True Then '如果截取的字符是数字,则 i3 = i3 + 1 mysheet3.Cells(i1, 2) = Left(MyCell, i2 - 1) '写入B列单元格 mysheet3.Cells(i1, 3) = Right(MyCell, Len(MyCell) - i2 + 1) '写入C列单元格 Exit For '退出For循环 End If Next End IfNextmysheet3.Sort.SortFields.Clear '清除高级筛选里边的条件mysheet3.Sort.SortFields.Add Key:=Range("C2:C1000"), _SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormalWith mysheet3.Sort '筛选 .SetRange Range("A2:C1000") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .ApplyEnd WithFor i1 = 1 To i3mysheet3.Cells(i1 + 1, 1) = mysheet3.Cells(i1 + 1, 2) & mysheet3.Cells(i1 + 1, 3)Nextmysheet3.Columns("B:C").Delete '删除B、C列Application.ScreenUpdating = True '恢复屏幕更新显示End Sub
4、确认无误后(主要是B、C两列里边没有数据),在VBE编辑器的功能区里边点击“运行”图标运行程序。
5、回到Excel工作表界面,将会看到A列数据的排序结果。