【发布时间】:2015-04-29 19:21:43
【问题描述】:
如果我的 excel 文档中有 6 张工作表,按以下顺序命名和排列:O1、O2、O3、O1_#2、O2#2、O3#3
是否可以编写一个宏来更改这些工作表的顺序? 这是我正在寻找的序列: O1、O1#2、O2、O2#2、O3、O3#2
谢谢
【问题讨论】:
标签: excel excel-2007 excel-2010 vba
如果我的 excel 文档中有 6 张工作表,按以下顺序命名和排列:O1、O2、O3、O1_#2、O2#2、O3#3
是否可以编写一个宏来更改这些工作表的顺序? 这是我正在寻找的序列: O1、O1#2、O2、O2#2、O3、O3#2
谢谢
【问题讨论】:
标签: excel excel-2007 excel-2010 vba
如果我理解正确,您需要按字母顺序对表格进行排序:
Sub SortSheets()
Dim shNames As Collection
Dim i As Long, j As Long
Dim temp As String
Dim sh As Worksheet
Set shNames = New Collection
'add sheet names in collection
For Each sh In ThisWorkbook.Worksheets
shNames.Add sh.Name, sh.Name
Next sh
'bubble sort
For i = 1 To shNames.Count - 1
For j = i + 1 To shNames.Count
If shNames(i) > shNames(j) Then
temp = shNames(j)
shNames.Remove j
shNames.Add temp, temp, i
End If
Next j
Next i
' move sheets
For i = shNames.Count - 1 To 1 Step -1
Worksheets(shNames(i)).Move Before:=Sheets(1)
Next i
End Sub
【讨论】: