六合开奖结果现场直播欢迎诸位!收藏本站注 册登 陆
常用三肖中特马:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 三肖中特马 > 文章页

vba实时排序Excel被修改过的数据的代码

Admin | 2009-12-24 12:41:33 | ReadNums | 7877 | 标签 六合开奖结果现场直播 | 打印本页
     

  我们都知道,在Excel中可以进行数据的排序,非常方便。

  但是,此排序功能却有着一个致命的弱点,那就是,对于被修改过的数据,只能重新进行排序,才能看到效果。

  如果我们想要在Excel中修改数据,不用重新排序,就能得到排序后的效果,如何实现呢?

  方法非常简单,不过得使用VBA来实现!

  如上图,当我们修改Shee1中的B列,即成绩中的成绩,马上就可以实现排序。 

  操作方法如下

  使用鼠标右键点击“Sheet1”,在弹出的快捷菜单中选择“查看代码”,如下图!  

  之后,进入到VBA代码输入窗口,在窗口中输入如下代码即可。

  Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim LmaxR As Long
  LmaxR = Sheet1.UsedRange.Row
  With Sheet1.Range("B2:B" & LmaxR)
    .CurrentRegion.Sort key1:=Range("B1"), Header:=xlYes
    .Value = .Value
    .Parent.[B1] = "成绩"
  End With
  End Sub

  如上代码的功能,是这样的,无论您修改了整个工作薄中的任何一个单元格的值,那么,都将对Sheet1中的B列数据进行重新排序。这种排序是即时的排序,一修改值,马上就排序,用不着您使用菜单上的排序功能。

  如何修改如上代码

  上面的代码要实现的即时排序,是针对Sheet1中的B列进行的排序。如果您想在其它表里面实现这种功能,那么,请修改如下几个地方:

  ①Sheet1.UsedRange.Row 将Sheet1改为其它表的名称

  ②修改要排序的列名

  With Sheet1.Range("B2:B" & LmaxR)
    .CurrentRegion.Sort key1:=Range("B1"), Header:=xlYes
    .Value = .Value

  上面的代码,有B的地方,都修改为要排序的列,如排序第三列,那么,就修改为C,其它依此类推。

  ③最后要修改的地方

  .Parent.[B1] = "成绩"

  就是这里了,如果您要排序的是D列,而D列第一个单元格的内容是“工资”,这里相当于列名称,那么,修改为.Parent.[D1] = "工资"

  到这里,就全部结束了,希望本文对您有所帮助。


问题未解决:在线咨询

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日