![]() |
#2
mrexcel2022-11-18 22:19
Sub test() Dim s() As String, i&, j&, imax&, temp Open "d:\a.txt" For Input As #1 s = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf) Close #1 Debug.Print Join(s, vbCrLf) & vbCrLf & String(50, "-") For i = UBound(s) To 1 Step -1 imax = 0 For j = 0 To i If Val(Trim(Mid(s(j), 42))) > Val(Trim(Mid(s(imax), 42))) Then imax = j Next temp = s(imax) s(imax) = s(i) s(i) = temp Next Debug.Print Join(s, vbCrLf) End Sub 运行结果: 0 0 0 23.45519 0 0 1 30.03188 0 0 2 30.51785 0 0 3 23.06458 0 0 4 22.56246 0 0 5 20.3469 0 0 6 25.39143 0 0 7 27.0004 0 0 8 25.68157 0 0 9 28.31564 0 1 0 30.03188 0 1 1 36.60857 0 1 2 37.09455 0 1 3 29.64128 0 1 4 29.13916 0 1 5 26.9236 0 1 6 31.96813 -------------------------------------------------- 0 0 5 20.3469 0 0 4 22.56246 0 0 3 23.06458 0 0 0 23.45519 0 0 6 25.39143 0 0 8 25.68157 0 1 5 26.9236 0 0 7 27.0004 0 0 9 28.31564 0 1 4 29.13916 0 1 3 29.64128 0 1 0 30.03188 0 0 1 30.03188 0 0 2 30.51785 0 1 6 31.96813 0 1 1 36.60857 0 1 2 37.09455 |
0 0 0 23.45519
0 0 1 30.03188
0 0 2 30.51785
0 0 3 23.06458
0 0 4 22.56246
0 0 5 20.3469
0 0 6 25.39143
0 0 7 27.0004
0 0 8 25.68157
0 0 9 28.31564
0 1 0 30.03188
0 1 1 36.60857
0 1 2 37.09455
0 1 3 29.64128
0 1 4 29.13916
0 1 5 26.9236
0 1 6 31.96813
这是一个txt文件里的内容。
如果打开这个文件,并按照最后一列的内容排序,该怎么写代码?