精华内容
下载资源
问答
  • Excel VBA数据排序

    2020-12-15 01:01:54
    关注微信公众号:VBA168 每天更新Excel VBA经典代码,祝你工作和学习更轻松! 在如图1所示数据列表中,需要按总成绩从高到低...Range对象的Sort方法区域进行排序,其语法格式如下。 Sort(Key1, Order1, Key2, Type, O
  • 使用Range对象的Sort方法区域进行排序时,同时最多只能指定3个关键字,当需要按照超过3个关键字区域进行排序时,可以通过多次执行Sort方法实现。需要注意的是,在排序时应按照各关键字的倒叙顺序。例如,如果...

    关注微信公众号:VBA168
    每天更新Excel VBA经典代码,祝你工作和学习更轻松!

    使用Range对象的Sort方法对区域进行排序时,同时最多只能指定3个关键字,当需要按照超过3个关键字对区域进行排序时,可以通过多次执行Sort方法实现。需要注意的是,在排序时应按照各关键字的倒叙顺序。例如,如果按照A→B→C→D的关键字顺序进行排序,则应按D→C→B→A的顺序执行Sort方法。

    在这里插入图片描述
    图1 带排序数据

    如图1所示数据表中,需要按"总成绩"、“基础知识”、"教育学"和"心理学"的成绩降序排列,实例代码如下。

    Sub SortByKeysA()
         With Range("A1")
             .Sort Key1:="心理学", order1:=xlDescending, Header:=xlYes
             .Sort Key1:="教育学", order1:=xlDescending, Header:=xlYes
             .Sort Key1:="基础知识", order1:=xlDescending, Header:=xlYes
             .Sort Key1:="总成绩", order1:=xlDescending, Header:=xlYes
         End With
     End Sub
    

    运行以上过程,结果如图2所示。在这里插入图片描述
    图2 数据排序结果​

    使用Range对象的Sort方法对区域进行超过3个关键字排序时,需要多次执行Sort方法,而通过Worksheet对象的Sort方法则可以一次完成。如下示例代码实现与上面示例代码相同的排序功能。

    Sub MoreKeySort()
         With ActiveSheet.Sort.SortFields
             .Clear
             .Add Key:=Range("G1"), SortOn:=xlSortOnValues, Order:=xlDescending
             .Add Key:=Range("B1"), SortOn:=xlSortOnValues, Order:=xlDescending
             .Add Key:=Range("C1"), SortOn:=xlSortOnValues, Order:=xlDescending
             .Add Key:=Range("D1"), SortOn:=xlSortOnValues, Order:=xlDescending
         End With
         With ActiveSheet.Sort
             .SetRange Range("A1").CurrentRegion
             .Header = xlYes
             .Apply
         End With
     End Sub
    

    第3行代码清除工作表所有的SortFields对象。

    第4~7行分别在Sort对象中添加SortFields对象。SortFields对象的Add方法创建新的排序字段,并返回SortFields对象,其语法格式如下。

    Add(Key, SortOn, Order, CustomOrder,  DataOption)
    

    该方法的各参数分别对应于Range对象Sort方法的参数。

    第10行代码指定Sort对象的排序区域。

    第11行代码指定排序区域包含标题。

    第12行代码应用工作表排序。

    展开全文
  • '使用倒排序方式多列进行排序 For col = LastColumn To 2 Step -1 workArea.Sort Key1:=Cells(1, col), Order1:=xlAscending Next col sumRow = LastRow + 1 sumCol = LastColumn + 1 Set ...

    展开全文
  • 举一个例子,我们现在需要编写一个程序,想要实现的功能是排序工作表,让按照我们指定的规则进行排序,方便我们整理数据。现在我们的终极目的有了,那么我们就应该去一步一步的分析问题,转化为我们用代码可以实现的...

    如果我们想要去用VBA实现某一个功能,那么我们是如何去实现这个功能呢?我们接下来要和你说的是一个用VBA去实现一个目的,我们需要把我们的目的进行拆解,分析问题,解决问题,写出代码,最后完成需求。

    4122a72d1de77715e8173ecb669f5b40.png

    举一个例子,我们现在需要编写一个程序,想要实现的功能是排序工作表,让按照我们指定的规则进行排序,方便我们整理数据。

    现在我们的终极目的有了,那么我们就应该去一步一步的分析问题,转化为我们用代码可以实现的需求。如下为我们的分析过程:

    A、 如何实现排序功能,我们可以利用工作表的排序功能进行实现

    B、 高效可靠

    C、 对于任何工作表都可以通过,轻易进行执行

    D、 屏蔽错误,或者可以说解决所有的可能出现的问题

    c17f916a68ee046bd60ba17e1407e5ad.png

    首先解决我们第一问题,排序的代码,我们要是不知道的话,我们可以通过录制宏来得到我们所需要的源代码,如下图所示:

    但是我们的代码其实是不支持工作表排序的,我们后面可以通过对工作表的名称进行排序,然后让他们排排站就可达到我的所需的目的。

    我们现在开始代码的编写过程,我们利用的对工作表的名称进行排序,然后让他们按照规则进行排序站位即可。

    第一步编写排序过程,我们采用冒泡排序法,其实这个方法可以对数组进行排序,但是速度不是很快,优点是简单易写。冒泡排序法采用用循环和判断语句进行处理。具体原理为循环对每一个元素进行循环,然后利用判断进行比较大小,然后交换位置,这样就达到排序的要求,代码如下:

    第二步,让程序根据我的排序代码提供排排站功能,我们利用排序的代码进行排序移动,代码如下:

    627a4eeea391bfb14570643d2fe602b6.png

    其实这个代码就是我们的录制宏而达到的代码,进行修改的。如下为我们最新完成的代码集合,有需要的可以找我。

    Sub SortSheets() Dim SheetNames() As String Dim i As Long Dim SheetCount As Long Dim OldActive As Object  If ActiveWorkbook Is Nothing Then Exit Sub SheetCount = ActiveWorkbook.Sheets.Count If ActiveWorkbook.ProtectStructure Then MsgBox ActiveWorkbook.Name & " is protected.
    展开全文
  • 如何用vba对表格进行排序,下面做一个详细介绍:本示例主要以Range对象的Sort方法进行介绍,其它对象也有Sort方法,这里不做介绍,其实Sort本身就是一个对象,以后再做进一步详解。Sort语法:Range.Sort(Key1、 ...

    NO.1

    数据排序在Excel表格操作方面,应用相对较多,同时也是一个十分必要的操作。

    如何用vba对表格进行排序,下面做一个详细介绍:

    8bbc923c74fd8af595a7bdd8e9946505.png

    本示例主要以Range对象的Sort方法进行介绍,其它对象也有Sort方法,这里不做介绍,其实Sort本身就是一个对象,以后再做进一步详解。

    Sort语法:

    Range.Sort(Key1、 Order1、 Key2、 Type、 Order2、 Key3、 Order3、 Header、 OrderCustom、 MatchCase、Orientation、 SortMethod、 DataOption1、 DataOption2、 DataOption3)

    Range.Sort方法有很多参数,如下图:

    7745ef8308a8dd521eb50182a929eafd.png

    NO.2

    因为排序用到一些条件,比如排序方法,排序方向,排序字段等等。

    具体参数要设置完整之后,排序就以设定的方式进行。

    最终才达到想要的效果。

    有一些参数是系统已经定义好的常量,只要对应选择设置就可以,如下图:

    d0e6c31649fbecc5288f45abeac8bf32.png

    其内容较多,应用的时候对照参数进行,英文不太熟悉,要加强英文翻译,这一点对于国人来说还是有一点困难,毕竟不是母语,应用起来可能有点不适应。

    要不怎么说加强本土软件技术发展呢!其实,这个不是一天两天可能发展起来的事情,编程本身涉及到一个思想问题,就是专门一个学科"编程思想",技术是一个死东西,思想是活的,只有活的思想才能带动死的技术进一步发展。

    1d185ac301be97ca5a528be2fdf19b89.png

    NO.3

    如我们在编程过程中,遇到一些莫名其妙的问题,都是这类意识形态不同,造成编程思路不同,进而进程不一样,走入一个无法想象的死胡同。

    其实,可能在半路拐弯就走出迷宫,我们的思维不让我们去拐那个弯,传统认识上,因为我们认为,那个弯是反常识的,必然不能那么做,但在西方人观念中,是一件正常不过的事情。

    所以,编程思维不同,会带来不同的过程,有时候,虽然结果相同,却心理那个弯,真不是一时就拐过去了。

    3a3c71633c2241c16afcb590f6d6c438.png

    NO.4

    正如,当前美国全力打压华为一样,作为具有中华民族特点的一个科技企业,让西方无法理解的快速发展,让西方感觉到了威胁的存在,于是,就变得不要脸起来。

    这是一件十分可恶的行为,但是对于他们就是一件很正常的事情,所谓你不下地狱我就必须下,那么很显然,要全力让你更接近地狱大门,就是当前美丽国办的事情。

    然而,这就是一种思维,名曰非我莫属,你不能超越我,我要在你前面。

    中华民族有共同的文化传承,特别多,有一种叫不屈不挠的精神,有极大的忍受能力。

    许是农耕文明的延续,有别于西方强盗式逻辑下的快餐,没有文明的沉淀。

    他们多是以现代科技包装下进行全球强夺的方式得以快速发展,近100多年来,引领社会发展走向一个前所未有的人类世界。

    我们要发展,我们要创新,我们可能比西方走得更加稳健,这让西方感觉到了恐惧,为什么?

    因为在他们认为,当你强大的时候,就是我被欺负的时候。

    事实是吗?

    也许不是,在他们的观念里弱肉强食是自然法则,没有人性的干预。

    而中华文明要避免这种情况发生,要让弱的变强,让强的不去欺凌。

    这种文化上的对立,造成了行为上的不同,所以,西方人无法理解我们强大之后有多么友善,他们一直担心他们衰弱后在这个世界上消失的可能。

    当前,依然要学习他们的技术,因为,这就是走向强大的过程。

    所以,Sort排序的话,必然有其先后。

    NO.5

    这个例子太长,也离开了本节内容中心。

    一些代码,作为Sort学习的例子,以共学习:

    Private Sub CommandButton1_Click()Dim R As RangeSet R = Range("A4:C20")R.Sort key1:=Range("C4"),  _order1:=xlAscending, _Header:=xlNo, -dataoption1:=xlSortNormalEnd Sub

    上面例子以C4开始字段,对A4:C20区域进行升序排序。

    ---END---

    欢迎关注、收藏

    展开全文
  • 在写vba项目时,经常会遇到需要结果进行排序的情况。如果是一维数组的排序,那么很多人可能还会去用一些排序的算法代码,但是如果要排序的数据是多维,或者是多行多列的单元格区域需要进行多个字段多条件的排序时...
  • 我们在工作中,经常会统计员工...我们通常会对数据进行排序操作,我们选中E列任意一个数据,然后点击数据选项卡的,AZ↓,也就是升序排序我们的数据就按名次排好了,然后发到群里面当第2天的销售明细更新之后,各个...
  • 诸君好,前前期我们聊了VBA编程和数据的常规排序……VBA常用小代码105:Rang对象的排序操作……今天我们再聊下自定义排序……何谓自定义排序,就是按指定的顺序对数据进行排序呗……今一共分享了三种方法。...
  • 在数据分析中经常需要对数据进行排序、排名,观察指标排名变化情况,手工处理的话不是太困难,但经常使用,还是编写宏比较方便。 宏命令比较简单,不多解释,只说一下注意事项: 1、有合并单元格,比如列、行合并后...
  • 诸君好,前前期我们聊了VBA编程和数据的常规排序……VBA常用小代码105:Rang对象的排序操作……今天我们再聊下自定义排序……何谓自定义排序,就是按指定的顺序对数据进行排序呗……今一共分享了三种方法。...
  • 大家好,今日我们继续讲解VBA数组与字典解决方案,今日的内容是第58讲,利用工作表函数,字典的键进行排序,并给出对应的重复个数。对于排序,大家并不陌生,在之前的讲解中,我也讲了利用sort进行排序的方法。今日...
  • 从一个工作簿各个子表中复制数据粘贴到另一个工作簿指定位置中,并指定列进行排序,这个是我们在日常工作中经常做的,如何减少繁琐的工作步骤,提高效率,一键完成上面的工作。下面介绍通过VBA,如何自动化跨工作...
  • 大家好,今日我们继续讲解VBA数组与字典解决方案,今日的内容是第58讲,利用工作表函数,字典的键进行排序,并给出对应的重复个数。对于排序,大家并不陌生,在之前的讲解中,我也讲了利用sort进行排序的方法。今日...
  • 大家好,我们今日继续讲解VBA代码解决方案的第104讲内容:在Listview控件中排序。在讲控件的时候我首先详细...在使用Listview控件显示报表型的数据时,可能通过单击Listview控件的列标题列表数据进行排序,真的非...
  • 这是网友提出的一个问题:一个数据进行排序,今后每次增加新的数据时,刷新数据表就能自动纳入新增行重新排序,这个怎么做到?听上去很智能,很多人首先想到是不是要用 VBA。从我个人角度,是非常鼓励并且喜欢用...
  • 大家好,今日我们继续讲解VBA数组与字典解决方案,今日的内容是第58讲,利用工作表函数,字典的键进行排序,并给出对应的重复个数。对于排序,大家并不陌生,在之前的讲解中,我也讲了利用sort进行排序的方法。今日...
  • 这是网友提出的一个问题:一个数据进行排序,今后每次增加新的数据时,刷新数据表就能自动纳入新增行重新排序,这个怎么做到?听上去很智能,很多人首先想到是不是要用 VBA。从我个人角度,是非常鼓励并且喜欢用...
  • VBA挑战-源码

    2021-02-15 03:36:19
    VBA挑战 该项目旨在开发一个宏,以分析一系列日常股票交易信息并... 由于已经对数据进行排序,因此我重构了代码,以使用for循环仅对数组进行一次遍历,并将每次计算的所有必要值提取到一组变量中。 标识新的股票
  • VBA与数据库

    2015-11-19 18:07:38
    •实例9-7 利用ADO按照字符的长度对数据进行排序 197 •实例9-8 比较两张表,将两个表中相同的行数据抓取出来 198 •实例9-9 比较两张表,将只存在于某个表中的行数据抓取出来 199 •实例9-10 删除工作表数据区域内...
  • vba 学习(二)

    2013-07-05 16:11:29
    对数据透视表、单元格区域或活动区域(如果指定区域仅包含一个单元格)进行排序。 expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, ...
  • CATIA VBA实用程序.rar

    2020-08-02 19:53:23
    本文件主要介绍使用VBA程序CATIA数模(*.CATPart、*.CATProduct、*.CATDrawing)进行自动化处理,旨在提高工作效率、改进数模质量和减少重复劳动,例如: 1) 零件设计程序组Part.catvba:全部适应+等轴测图、...
  • 文字按插入点自动对齐提供了自定义数据类型的数组进行排序的一个思路;提取多行文字中的文字内容AutoCAD中多行文字的格式代码进行了分析。使用ObjectDBX实现的批量文字替换,与上一个版本比较起来,修正了一些...
  • 在实际工作中,符合条件的一列进行排序是excel中常用的功能之一,但是默认的筛选往往功能较为单一,且只能固定的一列进行排序然后接着转为到下一列,不仅操作上较为繁琐而且不能实现快速连续的排列。尤其是当...
  • 最后安排两个综合系统实例,Excel2007VBA知识点进行了综合应用,帮助读者迅速提升VBA综合设计能力,实现从入门到精通的快速飞跃。本书光盘中包括所有实例的素材和程序源代码,读者稍加修改,便可应用于自己的工作...
  • 最后安排两个综合系统实例,Excel2007VBA知识点进行了综合应用,帮助读者迅速提升VBA综合设计能力,实现从入门到精通的快速飞跃。本书光盘中包括所有实例的素材和程序源代码,读者稍加修改,便可应用于自己的工作...
  • 本文件主要介绍使用VBA程序CATIA数模(*.CATPart、*.CATProduct、*.CATDrawing)进行自动化处理,旨在提高工作效率、改进数模质量和减少重复劳动,例如: 1) 零件设计程序组Part.catvba:全部适应+等轴测图、...
  • 本文件主要介绍使用VBA程序CATIA数模(*.CATPart、*.CATProduct、*.CATDrawing)进行自动化处理,旨在提高工作效率、改进数模质量和减少重复劳动,例如: 1) 零件设计程序组Part.catvba:全部适应+等轴测图、...
  • 04202单元格进行加减乘除运算 04203将单元格区域作为图像对象进行复制(无链接) 04204将单元格区域作为图像对象进行复制(有链接) 04205复制大小可变的单元格区域 05001获取嵌入图表的名称 05002获取图表工作表...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
    完整清晰版 PDF ,有目录。共 270MB,分为 2 个分卷 中文版Excel 2007 高级VBA编程 宝典 OFFICE2007 中文版Excel 2007高级VBA编程宝典 原价:99.99元 作者:(美)沃肯巴赫(Walkenbach,... 11.3.5 对数组进行排序  ...
  • 在表格中对数据进行排序,通常我们都是调用数据选项卡下的排序功能来实现的,操作起来不够快捷。如果能在表格旁边添加两个按钮,直接点击按钮实现升降序排列,那就方便多了。▲ 完成效果图下面来看详细制作过程——...

空空如也

空空如也

1 2 3 4 5
收藏数 84
精华内容 33
关键字:

vba对数据进行排序