|
发表于 2013-6-22 08:03
|
显示全部楼层
本楼为最佳答案
请注意: Dim arr, brr(1 To 30)
Dim crr(1 To 30)
For i = 1 To 30
这我设置的都是30,所以工作表的最大数不能超过30,
Sub 工作表排序2()
Dim a As Integer
Dim arr, brr(1 To 130)
Dim crr(1 To 130)
For i = 1 To 130
crr(i) = i
Next
For i = 1 To Sheets.Count
men = Sheets(i).Name
men = Right(men, Len(men) - 1)
nb = nb & "," & men
Next
arr = Split(nb, ",")
For i = 1 To UBound(arr)
brr(i) = IIf(Left(arr(i), 1) = "十", Application.Match("一" & arr(i), _
Application.Text(crr, "[DBNum1]"), 0), Application.Match(arr(i), Application.Text(crr, "[DBNum1]"), 0))
Next
For i = 1 To UBound(brr)
m = Application.Small(brr, i)
n = IIf(Len(m) = 2 And Left(m, 1) = 1, _
Right(Application.Text(m, "[DBNum1]"), 2), _
Application.Text(m, "[DBNum1]"))
On Error Resume Next
Worksheets("表" & n).Move before:=Worksheets(i)
Next
End Sub
你用上面这段码,如果你的表数超过130,就改这的数字
Dim arr, brr(1 To 130)
Dim crr(1 To 130)
For i = 1 To 130 不要用上面的代码了。 |
|