大家好,我是爱捣鼓Excel的珠珠。

今天我给大家分享一种:只需要按按键就能轻松排序!听起来是不是很爽?

来看看动态效果图:

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

来,我详细告诉你怎么弄,一步步来!️

首先,打开Excel的开发工具

你知道Excel顶部那一排选项卡里有个“开发工具”吗?

点击它!然后,在弹出来的菜单里,找到并点击“Visual Basic”。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

这时候,你会进入一个看起来有点高大上的编程环境,别害怕,我们只用得到一点点功能。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

接着,插入一个用户窗体

️在这个编程环境里,看到左边的“工程资源管理器”了吗?

找到你的工作簿名字(比如“姓名”),然后右击它。选择“插入” -> “用户窗体”。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

看,一个空白的窗体就出现在你眼前了,就像一张白纸等你去设计!

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

给窗体起个名字吧

按一下“F4”,会出现“属性”窗口。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

找到“(名称)”这一项,把里面的默认名字改成“frmSort”。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

双击窗体,写入代码:


Private Sub UserForm_Initialize()
rw = Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("A1:A" & rw)
列表框.List = arr
End Sub

然后,加点料:列表框和按钮

在窗体的工具箱里(如果没看到工具箱,就点击顶部的“查看” -> “工具箱”),找到“列表框”和“命令按钮”。

先拖一个列表框到窗体上,然后右击它,选择“属性”。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

在属性窗口里,把“(名称)”改成“列表框”,这样我们就知道它是我们的列表框了。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

接着,拖三个命令按钮到窗体上,分别把它们的“名称”属性改成“cmdup”、“cmdDown”和“cmdSave”。

把Caption,改成“Caption”属性改成“上移”、“下移”和“保存。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

这样,我们的窗体就设计好啦!

接下来,是魔法时刻:编写代码

分别双击“上移”、“下移”和“保存”按钮,分别输入相应的代码。双击对应的按钮,会弹出一个代码窗口。

在这里,你可以输入一些代码:

Private Sub cmdUp_Click()
Dim 选中行号 As Integer
With Me.列表框
选中行号 = .ListIndex
Select Case 选中行号
Case -1
MsgBox "请选择一行后再移动!"
Case 0
MsgBox "已经是第一行!"
Case Is > 0
t = .List(选中行号)
.List(选中行号) = .List(选中行号 - 1)
.List(选中行号 - 1) = t
.ListIndex = 选中行号 - 1
End Select
End With
End Sub
Private Sub cmdDown_Click()
Dim 选中行号 As Integer
Dim t As String
With 列表框
选中行号 = .ListIndex
Select Case 选中行号
Case -1
MsgBox "请选择一行后再移动!"
Case .ListCount - 1
MsgBox "已经是最后一行!"
Case Is < .ListCount - 1
t = .List(选中行号)
.List(选中行号) = .List(选中行号   1)
.List(选中行号   1) = t
.ListIndex = 选中行号   1
End Select
End With
End Sub
Private Sub cmdSave_Click()
For i = 1 To 列表框.ListCount
Cells(i, 1) = 列表框.List(i - 1)
Next
End Sub

别担心,代码其实很简单的,网上也有很多现成的例子。

这些代码就像咒语一样,能让我们的窗体活起来!

(如果你不会写代码,可以告诉我,我可以给你一些简单的示例代码哦!)

最后,插个模块,建个链接

在“工程资源管理器”里,右击你的工作簿名字,选择“插入” -> “模块”。这样,你就得到了一个新的模块,写一些的代码。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

Sub FormShow()
frmsort.Show
End Sub

然后,回到Excel的工作表里,插入一个形状(比如一个矩形)。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

右击这个形状,选择“指定宏”。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

在弹出来的宏列表里,找到你刚才插入的模块里的那个宏,然后选择它。

Excel日常小烦恼,排序大升级!一键轻松搞定排序!-趣帮office教程网

这样,这个形状就像是个开关,一点就能打开我们的排序小助手了!

现在,你的排序小助手就搞定了!

只需动动手指,点点“上移”、“下移”,然后“保存”,排序结果就写进表格里了。

是不是超级方便?我现在都用它来排序,快得飞起!

对了,别忘了分享给同事们哦!