|
发表于 2016-3-7 21:25
|
显示全部楼层
本楼为最佳答案
- Sub test()
- Dim i&, j&, k&, m&, n&, x, y, r&
- Dim arr(1 To 100, 1 To 2), wb, th, wbn$
- Application.ScreenUpdating = False
- th = ThisWorkbook.Path & ""
- wbn = Dir(th & "*.xlsx")
- Do While Len(wbn)
- If wbn <> ThisWorkbook.Name Then
- Set wb = Workbooks.Open(th & wbn)
- With wb
- For m = 1 To Sheets.Count
- With .Sheets(m)
- r = .[a65536].End(3).Row
- If r > 1 Then
- n = 0
- For i = 1 To r Step 3
- n = n + 1
- arr(n, 1) = .Cells(i, 1).CurrentRegion
- arr(n, 2) = arr(n, 1)(1, 9)
- y = arr(n, 1)
- x = arr(n, 2)
- For j = 1 To n - 1
- If arr(j, 2) > x Then
- For k = n To j + 1 Step -1
- arr(k, 1) = arr(k - 1, 1)
- arr(k, 2) = arr(k - 1, 2)
- Next
- Exit For
- End If
- Next
- arr(j, 1) = y
- arr(j, 2) = x
- Next
- n = 0
- .Cells.ClearContents
- For j = 1 To i - 1 Step 3
- n = n + 1
- .Cells(j, 1).Resize(2, 9) = arr(n, 1)
- Next
- End If
- End With
- Next
- .Close True
- End With
- wbn = Dir
- End If
- Loop
- Application.ScreenUpdating = True
- MsgBox "处理完毕!"
- End Sub
复制代码
批量排序.rar
(173.64 KB, 下载次数: 12)
|
评分
-
查看全部评分
|