【问题标题】:Re-order Excel Sheets based on Sheet names via a macro通过宏根据工作表名称重新排序 Excel 工作表
【发布时间】: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


    【解决方案1】:

    如果我理解正确,您需要按字母顺序对表格进行排序:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      相关资源
      最近更新 更多