vba如何对excel 日期排序,ExcelVBA学习笔记工作表中数据排序
vba如何对excel 日期排序,ExcelVBA学习笔记工作表中数据排序MatchCase参数 表示是否区分字母的大小写。True 区分大小写,False 不区分。Range(“a2:d11”).Sort Range("d2") order1:=2 key2:=Range("c2") order2:=2 Header:=2 Sort 最多支持3个关键字,只有Key3 没有Key4。Type 参数是仅用于数据透视表排序,值为:xlSortLables或xlSortValues。Header 用来表示是否存在表头。Header:=2表示没有表头(英文全写xlNo),1 值为有表头(英文全写xlYes),0 值表示让系统自己判断(英文全写xlGuess)。此参数省略不写的话默认为让系统自己判断。注:示例语句在Header前面只有一个逗号,许多介绍中此处没有写Header,但是前面有多个逗号。这是两种写法,写了Header:=2 不
在工作表中经常会对一个区域的数据进行排序,VBA代码如何实现这样的操作呢?VBA里直接提供了Sort方法,语法range().Sort “参数”;range()代表单元格区域,参数如图:
参数描述:Key1 Order1 Key2 Type Order2 Key3 Order3 Header Ordercustom MatchCase Orientation SortMethod DataOption1 DataOption2 DataOption3
先举几个简单的示例:
Range(“a2:d11”).Sort range(“b2”) Order1:=2 Header:=2
语句释义:range(“a2:d11”)是要参与排序的数据区域;Sort后面有个空格(VBA的提示中有括号,实际不需要,文尾会写原因),然后接参数。第1参数Key1为range(“b2”),表示按“B列”排序的关键字(这里B3,B4都可以,只要在数据区域内),作用等同于下图的“列D"。
Order1:=2表示降序(英文全写xlDescending),省略不写的话默认为升序,就是上图中的"次序";Order的值 为xlAscending 表示”升序“(数字简写 1),几个Order是一样的。
Type 参数是仅用于数据透视表排序,值为:xlSortLables或xlSortValues。
Header 用来表示是否存在表头。Header:=2表示没有表头(英文全写xlNo),1 值为有表头(英文全写xlYes),0 值表示让系统自己判断(英文全写xlGuess)。此参数省略不写的话默认为让系统自己判断。注:示例语句在Header前面只有一个逗号,许多介绍中此处没有写Header,但是前面有多个逗号。这是两种写法,写了Header:=2 不用管header位于参数第几位;不写”Header:=“ 就需要用","标注出这是第几参数
Range(“a2:d11”).Sort range(“b2”) 2 ,,,,,2 '这种写法需要相当熟悉参数
如果有两个关键字,语句为:
Range(“a2:d11”).Sort Range("d2") order1:=2 key2:=Range("c2") order2:=2 Header:=2
Sort 最多支持3个关键字,只有Key3 没有Key4。
MatchCase参数 表示是否区分字母的大小写。True 区分大小写,False 不区分。
Orientation参数,指定数据排序的方向性。默认是按列排序,就是数据是在列方向上按指定顺序排列;参数值 xlSortColumns(或xlToptoBottom)按列排序。参数值为xlSortRows(或xlLefttoRight) 将按行排序。
SortMethod参数,中文排序时可用;xlPinin 按拼音排序;xlStroke 按笔画排序(此参数可能有的Excel版本无效)
DataOption1参数,用于指定对于Key1所指区域中的文本型数字如何排序。就是排序的区域中有数字又有文本时,是按文本方式排序,还是按数字方式排序。如图:
默认按文本排就是上面左图的顺序(等同于DataOption1=xlSortNormal),如果DataOption1:=xlSortTextAsNumbers,就是上面右图的顺序。DataOption2,DataOption3指的是Key2与Key3的区域的排序方式。
Ordercustom参数,值为数字,指的是”自定义排序的序列“。Ordercustom=2,就是Sun Mon这个自定义的序列;8,就是”一月,二月“这个序列;一行一个序列。注:Ordercustom=1,为不使用自定义序列。
注:仅使用排序功能,Rng().Sort后不要跟括号,因为.Sort后面用括号,会被视为"函数",会提示要赋值给变量。
工作表的Sort方法:Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("C3:C23") SortOn:=xlSortonCellColor Order:=xlAscending;SortOn:=xlSortonCellColor 以单元格颜色排序。