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

姓名业绩第一名1地区$0第二名2地区$0第三名3地区$0第四名4地区$0第五名5地区$0前面排名不动,在业绩里输入数字以后,地区和业绩自动根据业绩降序排序... 姓名 业绩
第一名 1地区 $0
第二名 2地区 $0
第三名 3地区 $0
第四名 4地区 $0
第五名 5地区 $0
前面排名不动,在业绩里输入数字以后,地区和业绩自动根据业绩降序排序
展开
 我来答
pepe3399
推荐于2016-03-28 · 知道合伙人软件行家
pepe3399
知道合伙人软件行家
采纳数:1259 获赞数:5944
1988年毕业于苏州市职业大学计算机专业 从事软件开发5年 从事生产管理20年

向TA提问 私信TA
展开全部

编制一个排序的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

方格布c91ed
2011-04-13
知道答主
回答量:25
采纳率:0%
帮助的人:0
展开全部
你先把整个表的数据填写完整在选中名次后的其余列
再在菜单中找到自动排序
根据业绩降序排列
就可以勒
还有不清楚的再找我
追问
请问,可不可以不用手动点排序,而是输入数据以后就自动排列呢,用什么函数公式可以做到?
追答
好像不行,
这样就可以你输完数据之后再排列.
是一样的效果.也简单些..
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友22088fd99
2011-04-13 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:91.4万
展开全部
没有输入了自动排序的,都是输完了再排序,
如果你怕输入的数值大于上面的数值,就用数据有效性限制一下吧,
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱桑果
2011-04-13 · TA获得超过9787个赞
知道大有可为答主
回答量:4470
采纳率:0%
帮助的人:2903万
展开全部
排序时选定区域(不要把排名那列选进去)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云骑士数据恢复大师
2020-10-17 · TA获得超过1万个赞
知道大有可为答主
回答量:12.2万
采纳率:97%
帮助的人:6603万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式