如何对Vba排序
EXCEL的标准函数无法解决一些特殊的排序要求。这时,可以用VBA来对应。比如有一个原始数据表,如图:
根据这些原始数据,建立分类汇总数据表,如下图所示:
要求是当日程数据发生变化时,希望汇总表能自动排序。这样的需求不能通过手工自动排序。这样的要求只能依靠VBA。首先,编译一个排序程序,代码如下:
子排序()
将我的工作表调成字符串
Dim arr(1到3,1到2)
将I,J,K表示为整数
Dim M_S1 As String '存储交换区名称。
Dim M_S2作为双'商店交换销售。
MYsheet = "汇总排名"
工作表(我的工作表)。挑选
将值读入数组。
对于I = 1到3
对于J = 1到2
arr(I,J) = Cells(I + 1,J + 1)
下一个J
接下来我
整理
对于I = 1到2
对于J = I + 1到3
If arr(I,2)& lt;那么arr(J,2)
?M_S1 = arr(I,1)
?S2 = arr(I,2)
?arr(I,1) = arr(J,1)
?arr(I,2) = arr(J,2)
?arr(J,1) = M_S1
?arr(J,2) = M_S2
如果…就会结束
下一个J
接下来我
将数组的排序结果存储在单元格中。
对于I = 1到3
单元格((I + 1),2) = arr(I,1)
接下来我
末端接头
然后编写一个单元格内容变化的事件触发程序,代码如下:(注意:这段代码要放在原始数据表中)
私有子工作表_change(ByVal目标作为范围)
如果目标。列& lt那么= 4
?分类
如果…就会结束
末端接头