养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

如何将多行多列单元格区域按照升序或者降序排列

时间:2024-10-04 05:33:02

excel中给单个的行或者列进行排序很简单,但是如何给多行多列的数据同时按照升序或者排列呢?经过反复琢磨,我自己利用VBA代码实现了这一过程。分享如下,以飨读者。

工具/原料

Microsoftexcel软件

方法/步骤

1、首先将开发工具显示在主菜单中:打开一个文档,单击左上角【文件】——【选项】——【自定义功能区】在页面右侧框中找到【开发工具】,在其左侧复选框中打勾,点击确定,即可。这样,开发工具选项就出现在功能区中。如下图

如何将多行多列单元格区域按照升序或者降序排列

如何将多行多列单元格区域按照升序或者降序排列

2、进入开发界面。单击【开发工具】,可以在左侧看见【VisualBasic】,单击【VisualBasic】控件就进入VBA开发界面。单击【插入】——【模块】就进入编辑界面。

如何将多行多列单元格区域按照升序或者降序排列

如何将多行多列单元格区域按照升序或者降序排列

3、新建子过程单击【插入】——【过程】得到如下,名称中自己写喜欢的名字,如:过程排序——类型选择子过程(s)——单击【确定】

如何将多行多列单元格区域按照升序或者降序排列

如何将多行多列单元格区域按照升序或者降序排列

4、咯悝滩镞编辑代码然后代码如下:arr1=Selection’运行前首先要选择需要排序的区域x=UBound(arr1,1)y=UBound(arr1荑樊综鲶,2)Dimarr2()Fori=1ToxForj=1ToyReDimPreservearr2(1Tox,1Toy)m=(i-1)*y+js=WorksheetFunction.Small(arr1,m)’small函数按照升序排列,反之,large函数按照降序排列arr2(i,j)=sNextjNexti[h1].Resize(x,y)=arr2’[h1]为指定目标位置EndSub

5、咯悝滩镞运行子过程首先在工作表中选中需要排序的区域,然后在VB编辑界面中单击【F5】即可实现排序。如下:特别注意:当然,为了方便操作,在代码编辑完成后可以添加一个控围泠惶底件,直接在工作表中操作。依次点击【开发工具】——【插入】——表单控件中选择左上角的控制按钮。然后单击过程排序,就可以实现。同时可以将按钮1的名字改为自己喜欢的名字,如:给大爷排序在工作表中选中需要排序的区域(这次选择A1~F6区域)再单击【给大爷排序】就可以实现。不要忘记了,要将工作表另存为启用宏的工作簿(xlm),以后打开才能继续使用。

如何将多行多列单元格区域按照升序或者降序排列

如何将多行多列单元格区域按照升序或者降序排列

如何将多行多列单元格区域按照升序或者降序排列

如何将多行多列单元格区域按照升序或者降序排列

6、咯悝滩镞通过函数过程实现代码如下:PublicFunction函数排序(rngAsRange)’注意函数参数的类型arr1=rngx=UBoun颊俄岿髭d(arr1,1)y=UBound(arr1,2)Dimarr2()Fori=1ToxForj=1ToyReDimPreservearr2(1Tox,1Toy)m=(i-1)*y+js=WorksheetFunction.Small(arr1,m)arr2(i,j)=sNextjNexti函数排序=arr2EndFunction

如何将多行多列单元格区域按照升序或者降序排列

7、调用函数选择指定位置的单元格区域(注意范围要和拟定排序的区域大小一致),然后在公式框直接输入=函数排序()在括号内选择需要排序的区域,然后同时按下【Ctrl+Shift+Enter】三键,即可实现效果。例如:选择H12~M18区域作为存放结果的区域,然后在公式框输入=函数排(A1~F7),再按三键,即可实现。

如何将多行多列单元格区域按照升序或者降序排列

© 一点知识