怎样利用宏(VBA)设置一个按钮,点击该按钮实现学生成绩表中某列(比如“合计”)自动按降序排序?高手进

还有按学生姓名笔画由少到多的按钮的宏呢?要求:1、变化要扩展到其他列,即其他列的数据要跟随该列一起移动2、学生人数不是固定的,即当人数增减时按钮的宏一样适用我自己用录制宏... 还有按学生姓名笔画由少到多的按钮的宏呢?
要求:1、变化要扩展到其他列,即其他列的数据要跟随该列一起移动
2、学生人数不是固定的,即当人数增减时按钮的宏一样适用

我自己用录制宏的方式设置的宏按钮:
升序按钮:
Private Sub CommandButton2_Click()
Range("A2:E6").Select
Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub
降序按钮:
Private Sub CommandButton1_Click()
Range("A2:E6").Select
Selection.Sort Key1:=Range("D2"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub
按姓名笔画(递增)按钮:
Private Sub CommandButton3_Click()
Range("A2:E6").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=True, Orientation:=xlTopToBottom, SortMethod _
:=xlStroke, DataOption1:=xlSortNormal
End Sub
但一旦学生人数发生增减,这3个按钮仍然只能对原先的人数范围起作用。怎么才能让宏自动适用于学生的增减呀?请高手指教!
补充:在成绩(比如“合计”)的下面有很多统计数据(如“总分”、“平均分”“优生率”等等)不能参与那一列的排序(最上面的两行表头标题当然也不能参与排序)
展开
 我来答
enjoyllonely
2012-01-15 · TA获得超过2.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:60%
帮助的人:7401万
展开全部
Range("A2:E6").Select修改为
range("A2").resize(range("A65536").end(3).row() , 5).select
试试
追问
你好,你的方法我试了下,若成绩的下面没有统计数据很好用,但:在成绩(比如“合计”)的下面有很多统计数据(如“总分”、“平均分”“优生率”等等)不能参与那一列的排序,这有方法能解决吗?
追答
统计数据占了几行?
比如你原代码是A2:E6
那统计数据是占的第几行?
7 8 9三行?
那上面的代码修改为
range("A2").resize(range("A65536").end(3).row() -3, 5).select
即,有几行统计数据,就减几。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式