返回首页

Excel表格怎么输入数据自动排序?

291 2024-06-21 16:46 admin

编制一个排序的VBA程序。再写一个时间触发的程序来调用该排序程序。;时间触发就是在约定的单元格,只要有数据变化就启动该事件。;举例说明:;例如有一张明细表如图:;另有一张汇总表如图:;现在要编制二个宏。一个是对汇总表进行排序。一个是当明细表有数据变更时,触发该排序的程序。;排序的代码如下:;Sub 排序();Dim mYsheet As String;Dim arr(1 To 3, 1 To 2);Dim I, J, K As Integer;Dim M_S1 As String '存放交换地区名;Dim M_S2 As Double '存放交换销售额;mYsheet = "汇总排名";Sheets(mYsheet).Select;'将数值读取到数组中;For I = 1 To 3; For J = 1 To 2; arr(I, J) = Cells(I + 1, J + 1); Next J;Next I;'排序;For I = 1 To 2; For J = I + 1 To 3; If arr(I, 2) < arr(J, 2) Then; M_S1 = arr(I, 1); M_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; End If; Next J;Next I;'将数组的排序结果存放到单元格中;For I = 1 To 3; Cells((I + 1), 2) = arr(I, 1);Next I;End Sub;事件驱动,只要明细表的前4列有数据变化就启动排序;Private Sub worksheet_change(ByVal target As Range); If target.Column <= 4 Then; 排序; End If;End Sub

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片

网站地图 (共30个专题203000篇文章)

返回首页