excel中用 vba编写程序:将 A列先以单元格中后三位数为关键字按升序排序,再以前三位数按升序排序。

excel中用 vba编写程序:将 A列先以单元格中后三位数为关键字按升序排序,再以前三位数按升序排序。,第1张

如果不是必须写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

Public Sub PrintResult()

    Dim strStuNum   As String

    Dim strStuName  As String

    

    strStuNum = InputBox("Student Number:")

  铅铅圆  strStuName = InputBox("Student Name:")

    

    Debug.Print strStuNum

    Debug.Print strStuName

End Sub

运激颂行上述过程后,立即窗口(Ctrl+G)中将输出程序运行时用户输入的学号和姓名。槐塌


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/8263668.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存