Excel表格怎么输入数据自动排序
第一名 1地区 $0
第二名 2地区 $0
第三名 3地区 $0
第四名 4地区 $0
第五名 5地区 $0
前面排名不动,在业绩里输入数字以后,地区和业绩自动根据业绩降序排序 展开
推荐于2016-03-28 · 知道合伙人软件行家
编制一个排序的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
再在菜单中找到自动排序
根据业绩降序排列
就可以勒
还有不清楚的再找我
请问,可不可以不用手动点排序,而是输入数据以后就自动排列呢,用什么函数公式可以做到?
好像不行,
这样就可以你输完数据之后再排列.
是一样的效果.也简单些..
如果你怕输入的数值大于上面的数值,就用数据有效性限制一下吧,