在其字母正确的位置添加一个新的工作表

我有一个工作簿的工作表,目前有6个,但是这个将会增加。 选项卡/工作表名称按字母顺序排列,末尾带有“模板”表。

我克隆模板&创build一个新的工作表与用户指定的名称,但我怎样才能将其插入到工作簿,以便它在正确的位置按字母顺序?

我知道工作簿已经sorting,并且必须按照字母顺序插入新的工作表,并从模板表中复制。 下面的代码将会这样做:

Sub InsertSheet(name As String) Dim i For i = 1 To ActiveWorkbook.Sheets.Count If ActiveWorkbook.Sheets(i).name >= name Then Exit For End If Next i ActiveWorkbook.Sheets("Template").Copy before:=ActiveWorkbook.Sheets(i) ActiveSheet.name = name ' can fail if sheet already exists End Sub 

作为备选。 添加新工作表之后对工作表进行sorting:

 Sub SheetSorter() Dim ary() As String, I As Long ReDim ary(1 To Sheets.Count) For I = 1 To Sheets.Count ary(I) = Sheets(I).Name Next I Call VBA_Sort(ary) For Each a In ary Sheets(a).Move after:=Sheets(Sheets.Count) Next a End Sub Public Sub VBA_Sort(InOut() As String) Dim I As Long, J As Long, Low As Long, _ Hi As Long, Temp As Variant Low = LBound(InOut) Hi = UBound(InOut) J = (Hi - Low + 1) \ 2 Do While J > 0 For I = Low To Hi - J If InOut(I) > InOut(I + J) Then Temp = InOut(I) InOut(I) = InOut(I + J) InOut(I + J) = Temp End If Next I For I = Hi - J To Low Step -1 If InOut(I) > InOut(I + J) Then Temp = InOut(I) InOut(I) = InOut(I + J) InOut(I + J) = Temp End If Next I J = J \ 2 Loop End Sub