VBA中如何对工作表进行排序

该文章详细描述了如何在VBA中使用Move方法对Excel工作表进行按名称降序排序,通过创建数组存储工作表名称,然后进行比较和交换,最后调整工作表的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码

在VBA中对工作表进行排序的最简单方法是直接使用Move方法来移动工作表。

Sub SortSheetsByNameDescending()
    Dim sheets
    Dim sheet As Worksheet
    Dim i As Integer, j As Integer
    Dim sortedSheets() As Array

    ' 获取当前工作簿中的所有工作表
    Set sheets = ThisWorkbook.Sheets

    ' 将所有工作表的名称存储到数组中
    ReDim sortedSheets(1 To sheets.Count)
    For i = 1 To sheets.Count
        sortedSheets(i) = sheets(i).Name
    Next i

    ' 对工作表名称数组进行降序排序
    For i = LBound(sortedSheets) To UBound(sortedSheets) - 1
        For j = i + 1 To UBound(sortedSheets)
            If sortedSheets(i) < sortedSheets(j) Then
                ' 交换数组中的元素位置
                Dim temp As String
                temp = sortedSheets(i)
                sortedSheets(i) = sortedSheets(j)
                sortedSheets(j) = temp
            End If
        Next j
    Next i

    ' 根据排序后的数组重新定位工作表
    For i = sheets.Count To 1 Step -1
        Set sheet = sheets(sortedSheets(i))
        sheet.Move Before:=sheets(1)
    Next i
End Sub

逻辑

  1. 获取所有表的名称, 存储到Array
  2. 对Array进行排序, 本文是按名称降序排序
  3. 使用sheet.move方法往前排

请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但老师

要是看起来爽 求打赏一耳光

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值