怎么用Excel以姓名给工作表排序
excel工作表名称进行排序代码
学习了不看兄的按工作表名称进行排序的方法,记得兰版也写过一个的,写在这里算备忘吧,呵呵。
用法:先建一个工作表名称为“顺序的工作表”,然后第1列是序号,第二列为工作表的名称,然后运行下面的代码工作表就可以按指定的顺序进行排列了。
Sub 指令工作表排序()
'请先选择工作表目录所在单元格区域运行
Dim cel As Range
On Error Resume Next
With ActiveWorkbook
k = .ActiveSheet.Name
n = .Sheets.Count
For Each cel In Selection
.Sheets(cel.Value).Move after:=.Sheets(n)
Next
.Sheets(k).Activate
End With
End Sub
Sub 工作表名称排序()
Dim r%, n$, m$
For r = Sheets("顺序").Range("b65536").End(xlUp).Row To 2 Step -1
n = Sheets("顺序").Range("b" & r - 1).Value
m = Sheets("顺序").Range("b" & r).Value
Sheets("" & n & "").Move before:=Sheets("" & m & "")
Next
Sheets("顺序").Move before:=Sheets("" & Sheets("顺序").Range("b1").Value & "") End Sub
Sub test()
Dim str1 As String, i As Integer, arr1 Sheet1.Select
[a1] = "A"
For i = 1 To Worksheets.Count
Cells(i + 1, 1) = Sheets(i).Name
Next
Range("A1:A" & i).Select
Range("A1:A14").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin, DataOption1:=xlSortNormal
arr1 = Range("a2:a" & i)
Range("a1:a" & i).Clear
str1 = arr1(1, 1)
Sheets(str1).Move Before:=Sheets(1) For i = 2 To Worksheets.Count
str1 = arr1(i, 1)
Sheets(str1).Move After:=Sheets(i - 1) Next
End Sub
Sub Sort_Sheets()
Dim sCount As Integer, I As Integer, R As Integer
ReDim Na(0) As String
sCount = Sheets.Count
For I = 1 To sCount
ReDim Preserve Na(I) As String
Na(I) = Sheets(I).Name
Next
For I = 1 To sCount - 1
For R = I + 1 To sCount
If Na(R) < Na(I) Then
JH = Na(I)
Na(I) = Na(R)
Na(R) = JH
End If
Next
Next
For I = 1 To sCount
Sheets(Na(I)).Move After:=Sheets(I)
Next
End Sub
怎么用Excel以姓名给工作表排序,
2003版的Excel,sheet1、sheet2...一共100多个,把它们都用名字重命名之后,怎么排序呢,求教求教~
Sub 工作表标签排序()
Dim i As Long, j As Long, nums As Long, msg As Long
msg = MsgBox("工作表按升序排列请选 '是[Y]'. " & vbCrLf & vbCrLf & "工作表按降序排列请选 '否[N]'", vbYesNoCancel, "工作表排序")
If msg = vbCancel Then Exit Sub nums = Sheets.Count
If msg = vbYes Then 'Sort ascending
For i = 1 To nums
For j = i To nums
If UCase(Sheets(j).Name) < UCase(Sheets(i).Name) Then
Sheets(j).Move Before:=Sheets(i)
End If
Next j
Next i
Else 'Sort descending
For i = 1 To nums
For j = i To nums
If UCase(Sheets(j).Name) > UCase(Sheets(i).Name) Then
Sheets(j).Move Before:=Sheets(i)
End If
Next j
Next i
End If
End Sub
Sub 工作表标签排序()
Dim arr, Temp As String
Dim i As Integer, j As Integer, iSht As Integer
Dim sht As Worksheet
iSht = ThisWorkbook.Sheets.Count
i = 1
ReDim arr(1 To iSht) As String
'将工作表名导入数组
For Each sht In ThisWorkbook.Sheets
arr(i) = CStr(sht.Name)
i = i + 1
Next
'冒泡排序法
For i = 1 To iSht - 1
For j = i + 1 To iSht
If arr(i) > arr(j) Then
Temp = arr(j)
arr(j) = arr(i)
arr(i) = Temp
End If
Next j
Next i
'工作表按名称排序
Sheets(arr(1)).Move before:=Sheets(1)
For i = 2 To iSht
Sheets(arr(i)).Move after:=Sheets(arr(i - 1))
Next i
End Sub欢迎到excel home学习。