精华内容
下载资源
问答
  • VBA 排序Sort说明

    千次阅读 2020-06-18 09:29:47
    Sub 排序Sort() Sheet3.Range("A1:CN6").Sort Key1:=Range("N1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=n + 1, MatchCase:=True '↑↑↑↑↑↑↑↑....以上为实际操作时的代码写法,特别注意...
    花了点时间整明白Sort这个玩意,留着备用;
    
    Sub 排序之Sort()
    
    Sheet3.Range("A1:CN6").Sort Key1:=Range("N1"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=n + 1, MatchCase:=True
    
    '↑↑↑↑↑↑↑↑....以上为实际操作时的代码写法,特别注意Sort key1中间的空格必须要有....↑↑↑↑↑↑↑↑
    
    '=========================================================================================================================================================================================================================>
    
    '↓↓↓↓↓↓↓↓....以下为便于说明,方便查看....↓↓↓↓↓↓↓↓
    
        语法:expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)
    
        'expression 必须。一个表示 Range 对象的变量
    
        With Sheet3.Range("A1:CN6")
    
            .Sort Key1:=Sheet3.Range("N1") '..........第一排序关键字。
    
            .Sort Order1:=xlAscending '...............第一关键字排序方式xlAscending(或1)=升序,xlDescending(或2)=降序。
            
            .Sort Key2:=Range("F1") '.................第二关键字。
    
            .Sort Type:=xlChart '.....................指定要排序的元素。
    
            .Sort order2:=xlAscending '...............第二关键字排序方式xlAscending(或1)=升序,xlDescending(或2)=降序。
    
            .Sort key3:=Sheet3.Range("B1") '..........第三关键字。
    
            .Sort order3:=xlAscending '...............第三关键字排序方式xlAscending(或1)=升序,xlDescending(或2)=降序。
    
            .Sort Header:=xlGuess '...................指定第一行是否包含标题。xlGuess(或0)=工作表自己判断是否有标题,xlYes(或1)=强制第一行为列标题(不参与排序),xlNo(或2)=强制没有列标题(全部参与排序)
    
            .Sort OrderCustom:=n + 1 '................指定在自定义排序次序列表中的基于一的整数偏移(例:同一列中有ABCD,可以指定按DCBA或CDAB自定义排序,n变量可以是数组,也可以是单元格区域)
            
            .Sort MatchCase:=True '...................设置为True以执行区分大小写的排序, 设置为 False 以执行不区分大小写的排序; 否则为False 。不能用于数据透视表。
    
            .Sort Orientation:=xlSortColumns '........指定是应按行还是按列进行排序。 xlSortColumns(或1)按列排序。 xlSortRows(或2)=按行排序 。
            
            .Sort SortMethod:=xlPinYin '..............指定排序方法。xlPinYin(或1)=按字符的汉语拼音顺序排序,xlStroke()=按每个字符的笔划数排序。
    
            .Sort dataoption1:=xlSortNormal '.........指定如何对_Key1_中指定的范围内的文本进行排序;不适用于数据透视表排序。xlSortNormal(或0)=分别对数字和文本数据进行排序(默认值),xlSortTextAsNumbers(或1)=将文本作为数字型数据进行排序。
    
            .Sort dataoption2:=xlSortNormal '.........指定如何对_Key2_中指定的范围内的文本进行排序;不适用于数据透视表排序。xlSortNormal(或0)=分别对数字和文本数据进行排序(默认值),xlSortTextAsNumbers(或1)=将文本作为数字型数据进行排序。
    
            .Sort dataoption3:=xlSortNormal '.........指定如何对_Key3_中指定的范围内的文本进行排序;不适用于数据透视表排序。xlSortNormal(或0)=分别对数字和文本数据进行排序(默认值),xlSortTextAsNumbers(或1)=将文本作为数字型数据进行排序。
    
        End With
    
        '******************************************* 关于第四个参数 Type 对应值的说明 *******************************************
        
            'xlChart........................(或-4109) = 图表
            'xlDialogSheet..................(或-4116) = 对话框工作表
            'xlExcel4IntlMacroSheet.........(或4)     = Excel 版本 4 国际宏工作表
            'xlExcel4MacroSheet.............(或3)     = Excel 版本 4 宏工作表
            'xlWorksheet....................(或-4167) = 工作表Worksheet
    
    End Sub
    展开全文
  • VBA操作Excel内容排序,用Sort函数对工作表内容排序

    万次阅读 多人点赞 2019-02-18 23:52:47
    今天有同学问到关于大批量Excel的Sheet如何简化排序,但是网上的攻略比较混乱。因此,在这做一下示例。 需求:80页sheet的Excel文档,每页的格式相同,基本内容如下,要求根据A列,升序排列。 代码如下: ...

    今天有同学问到关于大批量Excel的Sheet如何简化排序,但是网上的攻略比较混乱。因此,在这做一下示例。

    需求:80页sheet的Excel文档,每页的格式相同,基本内容如下,要求根据A列,升序排列。

    代码如下:

    Option Explicit
    Sub MySort()
    Dim i As Integer
    Dim maxRow As Integer
    Dim sht As Worksheet
    
    '遍历所有工作表
    For i = 1 To ActiveWorkbook.Worksheets.Count
    
        Set sht = ActiveWorkbook.Worksheets(i)
    
        '激活当前工作表,Sort只能排序当前工作表
        sht.Activate
    
        '获取当前表最大行数
        maxRow = sht.UsedRange.Rows.Count
    
        '选取范围进行排序:这里是选取a3:ao41(前两行因为是标题,所以不选);key是排序的列,这里写a3,表示以a列为依据排序,最多可以写3个key;order表示升序降序;Header表示是否有标题,由于我们没选a1、a2,所以这里写no
        sht.Range("a3:ao" & maxRow).Sort key1:=sht.Range("a3"), order1:=xlAscending, Header:=xlNo
    
    Next i
    
    End Sub

     

    注意,Vba的排序函数为Sort,基本用法如下:

    Range("待排序数据区域").Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3,
            Header, OrderCustom, MatchCase, Orientation, SortMethod,
            DataOption1, DataOption2, DataOption3)
    其中各类型参数的意义如下:
    ① key1、key2、key3
    这些key是排序的关键列(或行)的单元格地址,如 Range("A1")
    实际只要选对列标题即可,对行数要求不敏感。

    【行数要求不敏感】
    即数据区域中任意行数都可以: Range("A1")、或Range("A2")、或Range("A1000")都可以。

    【注意】
    1. 一次Sort只能调用至多3个参数,没有key4可以使用。
    2. 至少使用1个参数即可,即key2、key3可以省去不用。

    【引用方法】
    1. 带参数名引用,如: key1:=Range("G3")
       带参数名引用时
    2. 参数位置引用,即按照上述Sort命令的参数顺序直接应用,
       如: Range("A1:I19").Sort key1:=Range("G3")  即第1位置参数即为key1
    ②  Order1、Order2、Order3
       这些Order是排序的顺序模式指定参数。即: A-Z升序、或Z-A降序
        参数的模式名称为:
              A-Z升序= xlAscending 或直接=1
                   Z-A降序= xlDescending 或直接=2
      带参数名引用时:
      Order1:=xlAscending  或 Order1:= 1
      参数位置引用时,紧跟key后面。(但注意key2和Order2之间要隔一个Type参数)
    ③  Header
        即是否有标题行参数,一共有3个值:
        Header:= xlGuess=0 或xlYes=1 或 xlNo=2
        即=xlGuess、或=0时,工作表自己判断
         =xlYes、或=1时,强制第1行为列标题,即第1行【不参与排序】
         =xlNo、或=2时,强制没有列标题。即第1行【也参与排序】
      带参数名引用时:
       如: Header:= xlGuess
       参数位置引用时,在第7个逗号之后。
      (如果key只有1个时,要连续空6个逗号,
       如:Range("A1:I19").Sort Range("A1"), 1, , , , , , 2 (order1之后连续写6个逗号)
    ④ MatchCase 是否匹配大小写
        MatchCase:=False 、或=0 不区分大小写
        MatchCase:=True 、或=1 区分大小写(Case Sensitive)
    ⑤ Orientation 排序方向 
       一般为同一列中从上到下各行进行排序:Orientation:= xlTopToBottom 、或=1
        如果是: 同一行中从左到右各列进行排序,则为:Orientation:= xlLeftToRight、或=2
    ⑥ SortMethod 排序方法
        按拼音排序: SortMethod:= xlPinYin 、或=1 (Use phonetic info)
        按笔画排序: SortMethod:= xlStroke、或=2
    ⑦ DataOption1 按数值或按文本排序
        DataOption1:= xlSortNormal

     

     

    展开全文
  • vba-Sort 函数对工作表排序方法

    千次阅读 2019-02-21 13:32:00
    来源:... 360doc@途之人 Range("待排序数据区域").Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orient...

    来源:http://www.360doc.com/content/17/0719/14/12298544_672573888.shtml

    360doc@途之人

     



    Range("待排序数据区域").Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3,
            Header, OrderCustom, MatchCase, Orientation, SortMethod,
            DataOption1, DataOption2, DataOption3)

    其中各类型参数的意义如下:
    ① key1、key2、key3
    这些key是排序的关键列(或行)的单元格地址,如 Range("A1")
    实际只要选对列标题即可,对行数要求不敏感。

    【行数要求不敏感】
    即数据区域中任意行数都可以: Range("A1")、或Range("A2")、或Range("A1000")都可以。

    【注意】
    1. 一次Sort只能调用至多3个参数,没有key4可以使用。
    2. 至少使用1个参数即可,即key2、key3可以省去不用。

    【引用方法】
    1. 带参数名引用,如: key1:=Range("G3")
       带参数名引用时

    2. 参数位置引用,即按照上述Sort命令的参数顺序直接应用,
       如: Range("A1:I19").Sort key1:=Range("G3")  即第1位置参数即为key1


    ②  Order1、Order2、Order3
       这些Order是排序的顺序模式指定参数。即: A-Z升序、或Z-A降序
        参数的模式名称为:
              A-Z升序= xlAscending 或直接=1
                   Z-A降序= xlDescending 或直接=2

      带参数名引用时:
      Order1:=xlAscending  或 Order1:= 1

      参数位置引用时,紧跟key后面。(但注意key2和Order2之间要隔一个Type参数)


    ③  Header
        即是否有标题行参数,一共有3个值:
        Header:= xlGuess=0 或xlYes=1 或 xlNo=2
        即=xlGuess、或=0时,工作表自己判断
         =xlYes、或=1时,强制第1行为列标题,即第1行【不参与排序】
         =xlNo、或=2时,强制没有列标题。即第1行【也参与排序】

      带参数名引用时:
       如: Header:= xlGuess
       
       参数位置引用时,在第7个逗号之后。
      (如果key只有1个时,要连续空6个逗号,
       如:Range("A1:I19").Sort Range("A1"), 1, , , , , , 2 (order1之后连续写6个逗号)


    ④ MatchCase 是否匹配大小写
        MatchCase:=False 、或=0 不区分大小写
        MatchCase:=True 、或=1 区分大小写(Case Sensitive)

    ⑤ Orientation 排序方向 
       一般为同一列中从上到下各行进行排序:Orientation:= xlTopToBottom 、或=1
        如果是: 同一行中从左到右各列进行排序,则为:Orientation:= xlLeftToRight、或=2


    ⑥ SortMethod 排序方法
        按拼音排序: SortMethod:= xlPinYin 、或=1 (Use phonetic info)
        按笔画排序: SortMethod:= xlStroke、或=2


    ⑦ DataOption1 按数值或按文本排序
        DataOption1:= xlSortNormal


    以上综合示例为:
    按参数名引用:
    Range("A1:I19").Sort key1:=Range("G3"), Order1:=xlAscending, _
             Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
             Orientation:=xlTopToBottom, SortMethod:=xlPinYin, _
             DataOption1:=xlSortNormal

    直接按参数位置:
    Range("A1:I19").Sort [G3], 1, , , , , ,0, 1, 0, 1, 1,1

    或根据默认为:Range("A1:I19").Sort [G3], 1


     

     

     

     

     

    Range("待排序数据区域").Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3,

            Header, OrderCustom, MatchCase, Orientation, SortMethod,

            DataOption1, DataOption2, DataOption3)

     

    其中各类型参数的意义如下:

    key1key2key3

    这些key是排序的关键列(或行)的单元格地址,如 Range("A1")

    实际只要选对列标题即可,对行数要求不敏感。

     

    【行数要求不敏感】

    即数据区域中任意行数都可以: Range("A1")、或Range("A2")、或Range("A1000")都可以。

     

    【注意】

    1. 一次Sort只能调用至多3个参数,没有key4可以使用。

    2. 至少使用1个参数即可,即key2key3可以省去不用。

     

    【引用方法】

    1. 带参数名引用,如: key1:=Range("G3")

       带参数名引用时

     

    2. 参数位置引用,即按照上述Sort命令的参数顺序直接应用,

       : Range("A1:I19").Sort key1:=Range("G3")  即第1位置参数即为key1

     

     

      Order1Order2Order3

       这些Order是排序的顺序模式指定参数。即: A-Z升序、或Z-A降序

        参数的模式名称为:

              A-Z升序= xlAscending 或直接=1

                   Z-A降序= xlDescending 或直接=2

     

      带参数名引用时:

      Order1:=xlAscending   Order1:= 1

     

      参数位置引用时,紧跟key后面。(但注意key2Order2之间要隔一个Type参数)

     

     

      Header

        即是否有标题行参数,一共有3个值:

        Header:= xlGuess=0 xlYes=1 xlNo=2

        =xlGuess、或=0时,工作表自己判断

         =xlYes、或=1时,强制第1行为列标题,即第1行【不参与排序】

         =xlNo、或=2时,强制没有列标题。即第1行【也参与排序】

     

      带参数名引用时:

       : Header:= xlGuess

       

       参数位置引用时,在第7个逗号之后。

      (如果key只有1个时,要连续空6个逗号,

       :Range("A1:I19").Sort Range("A1"), 1, , , , , , 2 (order1之后连续写6个逗号)

     

     

    MatchCase 是否匹配大小写

        MatchCase:=False 、或=0 不区分大小写

        MatchCase:=True 、或=1 区分大小写(Case Sensitive)

     

    Orientation 排序方向 

       一般为同一列中从上到下各行进行排序:Orientation:= xlTopToBottom 、或=1

        如果是: 同一行中从左到右各列进行排序,则为:Orientation:= xlLeftToRight、或=2

     

     

    SortMethod 排序方法

        按拼音排序: SortMethod:= xlPinYin 、或=1 (Use phonetic info)

        按笔画排序: SortMethod:= xlStroke、或=2

     

     

    DataOption1 按数值或按文本排序

        DataOption1:= xlSortNormal

     

     

    以上综合示例为:

    按参数名引用:

    Range("A1:I19").Sort key1:=Range("G3"), Order1:=xlAscending, _

             Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _

             Orientation:=xlTopToBottom, SortMethod:=xlPinYin, _

             DataOption1:=xlSortNormal

     

    直接按参数位置:

    Range("A1:I19").Sort [G3], 1, , , , , ,0, 1, 0, 1, 1,1

     

    或根据默认为:Range("A1:I19").Sort [G3], 1

     

     

     

    转载于:https://www.cnblogs.com/codelidaguo/p/10411901.html

    展开全文
  • Range.Sort: VBA 内置的排序方法,15个参数。 (Key1,Order1,Type,Key2,Order2,Key3,Order3,Header,OrderCustom,MatchCase,Orientation,SortMethod,DataOption1,DataOption2,DataOption3) Ke...

     

    相关知识点:

    要知道轮子是怎么造出来的,不要重复造轮子。

    Range.Sort: VBA 内置的排序方法,15个参数。

    (Key1,Order1,Type,Key2,Order2,Key3,Order3,Header,OrderCustom,MatchCase,Orientation,SortMethod,DataOption1,DataOption2,DataOption3

    1. Key1,主关键字最多三个;Order1,排序次序,默认升序xlAscending排列(xlDescending降序)。
    2. Header:=xlYes,第一行作为标题栏不参与排序,xlNo代表无标题(默认),xlGuess自行判断。
    3. MatchCase:=True代表区分大小写,False不区分;对应排序选项里的区分大小写功能。
    4. Orientation按行排序xlSortRows或xllefttoright;按列排序xlSortColumns或xltoptobottom,对应排序选项里的“方向”。
    5. SortMethod排序方法,文字内容,按照拼音(xlPinin,默认)还是按照笔画个数(xlStroke,有时排序选项中没有,就不好用)。
    6. DataOption1 内容有文本格式的数字,是按照文本排序(xlsortNormal)还是数字排序(xlSortTextAsNumbers),指定Key1关键字是否按照文本的顺序排序或者按照数字看待。
    7. Type 在对Pivot Table(数据透视表)排序时使用,指定按照Lable还是Value进行排序。
    8. OrderCustom 自定义排序规则

     

    例1 排序应用

    Sub mysortRange()

           Range(“B1:F1000”).Sort Key1:=Range(“B:B”),order1:=xlDescending

     

    End Sub

    例2文本排序应用(文本顺序请参照提高8)

    Sub mysortRange2()

           Range(“B2:B5”).sort Key1:=Range(“b1”),_  ‘b1等同于b

                         Dataoption:=xlsortNormal

    End Sub

    展开全文
  • #include //sort需要包含的库函数 using namespace std; bool compare1(int &a, int &b){ //降序排序 return a > b; } bool compare2(int &a, int &b){ //升序排序 return a ; } void sortarray(i
  • VBA中实现数组排序的多种方法

    万次阅读 2015-08-25 09:40:59
    VBA里面没有现成的Sort方法可以使用VBA里面要对数组进行排序,现有的通常做法: 1,通过单元格赋值以后利用工作表里的Sort方法进行排序, 2,通过SQL实现,也需要调用单元格区域存放数据, 3,直接写循环语句...
  • Excel VBA自定义序列排序

    千次阅读 2020-02-22 19:52:09
    在图1中所示的数据集中,如果希望按单元格区域E2:E6所列序列进行排序,需要先使用AddCustomList方法为应用程序添加自定义序列,示例代码如下。 Sub SortByLists() Dim avntList As Variant, lngNum As Long ...
  • 你不能用Dir这样做.另一种方法是:>...使用Val比较.jpgs值以按数字升序排序>最终的数组X包含已排序的文件Sub Test()Dim objFSO As ObjectDim objFolder As ObjectDim objFiles As ObjectDim objFile A...
  • 现在希望能够将该表数据以C列(科室)按照“外妇科l手术室l内儿科l西医科l中医科l耳鼻喉科I放射科l检验科l超室|口腔科l针灸科I西药房l中药房l收费室J疾控科l合管办|后勤科”的依次顺序进行排序,如何利用VBA实 ...
  • VBA常用功能函数

    千次阅读 2014-12-22 10:46:55
    (67) Application.WorksheetFunction.IsNumber(“A1”) '使用工作表函数检查A1单元格中的数据是否为数字 (68) Range(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate  '激活单元格...
  • Sort函数用法 1.头文件 #include <algorithm> #include <functional> 2.数组排序 typedef dataType int; //升序 sort( begin, end, less<dataType>() ); //降序 ...
  • VBA中的数组排序

    2011-10-19 23:12:00
    在Excel中没有提供直接的方法函数用于数组排序,因此若要使用VBA进行数组排序,则需要采用我们在数据结构与算法课程中学到的排序算法。 这里转载了Using a Visual Basic Macro to Sort Arrays in Microsoft ...
  • UDF.dll包含了一组实用的用户自定义函数,提供了数组处理的快速方法,可以在VB6、VBS、32位VBA中调用。 看完如下的实例代码,就明白它的用处了。 Private MyUDF As New UDF.ArrayConversion Sub 是否包含某元素...
  • sort函数中参数key

    千次阅读 2019-03-05 16:53:49
    sort函数原型 sort(key=None, reverse=False) key 可指定一些规则 reverse 默认值是False 可以给它赋值成True,那就是反向排序 Example: 当我们有一个需要排序的字典 它里面的键是一本小说所有的单词(不重复...
  • Dir 函数 返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。 语法 Dir[(pathname[, attributes])] Dir 函数的语法具有以下几个部分: 部分...
  • VBA单元格、工作表、工作簿

    千次阅读 2019-04-30 23:08:35
    详解VBA单元格、工作表、工作簿各种表示、方法,注意事项。
  • VBA调试了不下十遍,但是,能得到这么完整的列表,绝对是值得的。不学好VBA,都有点对不起这么好的资料了,哈哈。Attribute/Method/Event Description Abs 返回参数的绝对值,其类型和参数相同。语法 Abs(number)...
  • VBA快速入门学习笔记

    千次阅读 2020-10-04 17:12:20
    VBA对象包括工作薄、工作表、工作表上的单元格区域、图表等等,工作簿、工作表、单元格、批注、透视表、自选图形、名称等等都是对象,VBA正是用于处理这些对象的语言。下图是一个比较经典的VBA对象类别图。在VBE...
  • VBA 数据透视表的创建

    千次阅读 2021-01-21 15:21:37
    方法 读/写 值类别 默认值 说明 .ColumnGrand 读/写 Boolean True 是否启用列汇总 .RowGrand 读/写 Boolean True 是否启用行汇总 .HasAutoFormat 读/写 Boolean True 数据透视表在刷新或移动域时自动设置...
  • Range.Sort: VBA 内置的排序方法,15个参数。(缺点只有3个关键字排序) (Key1,Order1,Type,Key2,Order2,Key3,Order3,Header,OrderCustom,MatchCase,Orientation,SortMethod,DataOption1,DataOption2...
  • vba工作表重命名Renaming of worksheets can be done manually, but it will look like a massive task if there are a lot of worksheets to be renamed and when we need to rename it based on some conditions ...
  • Excel的VBA使用

    2019-03-13 14:06:48
    使用方法 1. 打开VBA代码窗口:工作表右键-->查看代码 2. 创建写代码的地方:菜单栏-->插入-->模块 3. 写代码 代码格式:Sub 程序名(参数)可以执行任务的代码End Sub 例子: ...
  • '本示例在商业问题中使用规划求解函数,以使总利润达到最大值。SolverSave 函数 '将当前问题保存到活动工作表上的某一区域。 Worksheets("Sheet1").Activate SolverReset SolverOptions Precision:=0.001 SolverOK ...
  • VBA学习

    2019-12-21 12:40:09
    基础 学习资料 《[Excel.VBA常用代码实战大全].袁竹平.... 代码地址1:https://github.com/frankzheng43/-VBA-in-practice ...打开方法 打开:ALT+F11 ;工具-宏-vb编辑器 F5运行,F8下一步 右键单击工作...
  • # Excel VBA编程常用语句300句 * 本文转自:**http://blog.sina.com.cn/codelee** 博主:**代码农夫** 感谢大佬总结并分享出来~ ************** # * VBA 语句集 * * (第 1 辑) * ************** ***************...
  • VBA编程常用语句(转载) 1、Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示 Option Compare Text '字符串不区分大小写 ...
  • excel vba 数据分析

    千次阅读 2019-01-20 12:20:00
    VBA(Visual Basic for Application)是Microsoft Office系列软件的内置编程语言,其语法结构与Visual Basic编程语言互相兼容,采用的是面向对象的编程机制和可视化的编程环境。 第一节 标识符 一.定义 标识符是一...
  • 先说明一下qsort和sort,只能对连续内存的数据进行排序,像链表这样的...集成在C语言库函数里面的的qsort函数使用 三 路划分的方法解决排序这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分值和大...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 415
精华内容 166
关键字:

vba排序函数sort用法