大家好,我是爱捣鼓Excel的珠珠。
今天我给大家分享一种:只需要按按键就能轻松排序!听起来是不是很爽?
来看看动态效果图:
来,我详细告诉你怎么弄,一步步来!️
首先,打开Excel的开发工具
你知道Excel顶部那一排选项卡里有个“开发工具”吗?
点击它!然后,在弹出来的菜单里,找到并点击“Visual Basic”。
这时候,你会进入一个看起来有点高大上的编程环境,别害怕,我们只用得到一点点功能。
接着,插入一个用户窗体
️在这个编程环境里,看到左边的“工程资源管理器”了吗?
找到你的工作簿名字(比如“姓名”),然后右击它。选择“插入” -> “用户窗体”。
看,一个空白的窗体就出现在你眼前了,就像一张白纸等你去设计!
给窗体起个名字吧
按一下“F4”,会出现“属性”窗口。
找到“(名称)”这一项,把里面的默认名字改成“frmSort”。
双击窗体,写入代码:
Private Sub UserForm_Initialize()
rw = Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("A1:A" & rw)
列表框.List = arr
End Sub
然后,加点料:列表框和按钮
在窗体的工具箱里(如果没看到工具箱,就点击顶部的“查看” -> “工具箱”),找到“列表框”和“命令按钮”。
先拖一个列表框到窗体上,然后右击它,选择“属性”。
在属性窗口里,把“(名称)”改成“列表框”,这样我们就知道它是我们的列表框了。
接着,拖三个命令按钮到窗体上,分别把它们的“名称”属性改成“cmdup”、“cmdDown”和“cmdSave”。
把Caption,改成“Caption”属性改成“上移”、“下移”和“保存。
这样,我们的窗体就设计好啦!
接下来,是魔法时刻:编写代码
分别双击“上移”、“下移”和“保存”按钮,分别输入相应的代码。双击对应的按钮,会弹出一个代码窗口。
在这里,你可以输入一些代码:
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
别担心,代码其实很简单的,网上也有很多现成的例子。
这些代码就像咒语一样,能让我们的窗体活起来!
(如果你不会写代码,可以告诉我,我可以给你一些简单的示例代码哦!)
最后,插个模块,建个链接
在“工程资源管理器”里,右击你的工作簿名字,选择“插入” -> “模块”。这样,你就得到了一个新的模块,写一些的代码。
Sub FormShow()
frmsort.Show
End Sub
然后,回到Excel的工作表里,插入一个形状(比如一个矩形)。
右击这个形状,选择“指定宏”。
在弹出来的宏列表里,找到你刚才插入的模块里的那个宏,然后选择它。
这样,这个形状就像是个开关,一点就能打开我们的排序小助手了!
现在,你的排序小助手就搞定了!
只需动动手指,点点“上移”、“下移”,然后“保存”,排序结果就写进表格里了。
是不是超级方便?我现在都用它来排序,快得飞起!
对了,别忘了分享给同事们哦!
评论 (0)