vba execl录入数据后跳转到最上面

时间:2014-11-01 03:17:49
【文件属性】:

文件名称:vba execl录入数据后跳转到最上面

文件大小:11KB

文件格式:RAR

更新时间:2014-11-01 03:17:49

vba execl 自动排序 .Sort Key1:=Range

采购同事遇到新的问题了,他来找到我,需要我给他设计一个,采购进度管理的表格,要求是他每次录入完或者修改完数据后,自动把采购完成的项目下移动到最后,让那些还没采购完成的项目始终排在最上面的行。这样他可以方便他的日常采购进度的追踪。 问题既然提出来了,我就要尽最大的努力来帮助同事。 1.首先我认为要自动把采购完成的项目下移到最后的话,其实不怎么科学,应该是把采购完成的项目移动到最上面才是科学的,因为要录入新的项目,在最后插入是最方便的,在中间或者最上面插入比较麻烦。 2.我就想到排序的方法可以实现让采购完成的项目移动到最上面。 于是我查阅了一些vba实现execl的自动排序,最终编写好的代码如下(请下载相应的附件execl表格,这样比较容易理解): Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 9 And Target.Column <> 8 And Target.Column <> 7 Or Target.Count > 1 Then Exit Sub On Error Resume Next Range("A2:I999").Sort Key1:=Range("I1"), Order1:=xlAscending, Key2:=Range("H1") _ , Order2:=xlAscending, Key3:=Range("G1") _ , Order3:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _ xlSortNormal, DataOption2:=xlSortNormal End Sub ps:在设计过程中,还进行了进一步的改进,例如:采购进度其实排序关键字段不是只有一个关键字段,而牵涉到3个之多。当然第一关键字还是采购完成日期,后面2个排序关键字段也是能起到追踪进度的作用的。另还加入了数据有效性的设计,让采购进度录入更方便,规范。


【文件预览】:
采购进度管理.xls

网友评论