原英文文章地址:How to Sort Excel Sheet by Name (4 Easy Methods)
如果您想按名称对Excel工作表进行排序,本文适合您。在这里,我们将引导您完成 4 种简单有效的方法来顺利完成任务。
以下 Excel 工作簿有 8 个工作表。我们将使用 4 种简单的方法按名称对 Excel 工作表进行排序。在这里,我们将使用 Excel 365。您可以使用任何可用的 Excel 版本。
1.应用鼠标拖放按名称对Excel工作表进行排序
在这里,我们将应用拖放方法按名称手动对 Excel 工作表进行排序。
步骤:
- 首先,选择任何工作表,然后使用鼠标拖动工作表并将拖放到所需的位置。
- 在这里,我们想移动名为 Mike 的工作表,因此,我们在名为** Mike** 的工作表上*单击并按住鼠标。
- 之后,我们将在名为 Mike 的工作表上看到一个下拉箭头。
- 然后,我们将拖动鼠标将工作表移动到我们想要的位置。
- 之后,我们将选定的工作表拖到名为 Andrew 的工作表之后,然后通过释放鼠标来放置工作表。
6.接下来,我们可以看到名为 **Mike **的工作表已移动到名为 Andrew 的工作表之后。
- 以类似的方式,我们拖动所有的工作表并根据需要对它们进行排序。
因此,您将看到按名称排序的 Excel 工作表。
2.插入VBA以按字母顺序对工作表名称进行排序
在这种方法中,我们将插入VBA代码,按名称按字母顺序对Excel工作表进行排序。
步骤:
- 首先,我们将转到“开发人员”选项卡>>然后选择Visual Basic以显示VBA编辑器窗口。
在这里,您可以使用键盘快捷键ALT+F11
带来 VBA 编辑器窗口。
将出现一个 **VBA **编辑器窗口。
- 然后,从“插入”选项卡>>选择“模块”。
- 之后,在“模块”窗口中,我们将键入以下代码。
Sub Sort_Sheetname_Alphabetically()
Dim p As Integer
Dim q As Integer
Dim pResult As VbMsgBoxResult
pResult = MsgBox("Select Yes to Sort Sheeets Alphabetically from A to Z?" & Chr(10) _
& "Select No to sort Sheet Alphabetically from Z to A", _
vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sort Worksheets")
For p = 1 To Sheets.Count
For q = 1 To Sheets.Count - 1
If pResult = vbYes Then
If UCase$(Sheets(q).Name) > UCase$(Sheets(q + 1).Name) Then
Sheets(q).Move after:=Sheets(q + 1)
End If
ElseIf pResult = vbNo Then
If UCase$(Sheets(q).Name) < UCase$(Sheets(q + 1).Name) Then
Sheets(q).Move after:=Sheets(q + 1)
End If
End If
Next q
Next p
End Sub
复制
代码分解
- 我们将 p,q 声明为 Integer,将 pResult 声明为 VbMsgBoxResult
- 对于 MsgBox,我们键入“按字母顺序从 A 到 Z 排序”和“单击否将按字母顺序从 Z 到 A 对工作表进行排序”
- 第一个 For 循环用于遍历计数的 Sheets。
- 第二个 For 循环用于查看所有工作表,以根据字母表对工作表****进行排序。
- 当我们在 MsgBox 中选择 Yes 时, IF 语句按字母顺序返回从 **A 到 Z **的工作表名称。
- 当我们在 MsgBox 中选择 No 时,IF 语句按字母顺序返回从 Z 到 A 的工作表名称。
然后,我们将单击“运行”按钮来运行代码。
接下来,将出现一个 MsgBox。
- 之后,我们将选择“是”。
如果要从** Z 到 A** 进行排序,则必须选择“否”。
- 之后,我们将关闭VBA编辑器窗口并返回Excel工作表。
因此,您将看到按名称按字母顺序排序的 Excel 工作表。
3.使用Excel VBA按升序对工作表名称进行排序
以下工作簿有 4 个 Excel 工作表。但是,工作表的名称顺序不规则。在这里,我们将使用 VBA 按名称升序排列 Excel 工作表。
步骤:
- 首先,我们将按照方法2中描述的步骤来引入VBA模块窗口。
- 之后,我们将在“模块”窗口中键入以下代码。
Sub sort_Sheetname_Ascending()
Dim s, t, u As Double
t = Application.Sheets.Count
For s = 1 To t
For u = 1 To t - 1
If LCase(Sheets(u).Name) > LCase(Sheets(u + 1).Name) Then
Sheets(u).Move after:=Sheets(u + 1)
Next
Next
End Sub
复制
代码分解
- 我们已将 s,t,u 声明为 Double。
- 第一个 For 循环用于再次查找每个工作表。
- 第二个 For 循环用于查看所有工作表,以按升序对它们进行排序。
- IF 语句标识较小的编号表名称,并将其放在较大的编号表名称之前。
然后,我们将单击“运行”按钮来运行代码。
之后,我们将关闭VBA编辑器窗口并返回Excel工作表。
因此,您将按名称升序看到排序的Excel工作表。
因此,您将按名称升序看到排序的Excel工作表。
4. 应用 VBA 按降序对 Excel 工作表名称进行排序
以下工作簿有 4 个 Excel 工作表。但是,工作表的名称顺序不规则。在这里,我们将使用 VBA 按名称降序对 Excel 工作表进行排序。
步骤:
- 首先,我们将按照方法2中描述的步骤来引入VBA模块窗口。
- 之后,我们将在“模块”窗口中键入以下代码。
Sub sort_Sheetname_Ascending()
Dim s, t, u As Double
t = Application.Sheets.Count
For s = 1 To t
For u = 1 To t - 1
If LCase(Sheets(u).Name) > LCase(Sheets(u + 1).Name) Then
Sheets(u).Move after:=Sheets(u + 1)
Next
Next
End Sub
复制
代码分解
- 我们将** u,v,w** 声明为 Double。
- 第一个 For 循环用于遍历 Counted Sheets。
- 第二个 For 循环用于查看所有工作表,以按降序对工作表进行排序。
- IF 语句标识较大的编号表名称,并将其放在较小的编号表名称之前。
- 然后,我们将单击“运行”按钮来运行代码。
- 之后,我们将关闭VBA编辑器窗口并返回Excel工作表。
最后,您将按名称降序看到排序的Excel工作表。
业务部分
在工作表的练习部分,您可以练习解释的方法。
结论
在这里,我们尝试向您展示 4 种按名称对 Excel 工作表进行排序的方法。感谢您阅读本文,希望对您有所帮助。如果您有任何疑问或建议,请在下面的评论部分告诉我们。