VBA工作表排序转载

摘要:
工作表内单元格数据的排序,使用Range.Sort命令。③Header即是否有标题行参数,一共有3个值:Header:=xlGuess=0或xlYes=1或xlNo=2即=xlGuess、或=0时,工作表自己判断=xlYes、或=1时,强制第1行为列标题,即第1行=xlNo、或=2时,强制没有列标题。

工作表内单元格数据的排序,使用Range.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
以上综合示例为:
按参数名引用:
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

免责声明:文章转载自《VBA工作表排序转载》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Modbus库开发笔记之一:实现功能的基本设计Winform中实现更改DevExpress的RadioGroup的选项时更改其他控件(TextEdit、ColorPickEdit)的值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VBA在32位下没问题,到64位异常报错

64 位 Visual Basic for Applications 概述Microsoft Visual Basic for Applications (VBA) 是 Microsoft Office 附带的 Visual Basic 版本。在 Microsoft Office 2010 中,VBA 包括可使 VBA 代码同时在 32 位和 64 位环境...

窗体和控件(2)——Excel之VBA(13)

二、窗体 1. 使用窗体 窗体的常用属性和方法(UserForm): 窗体常用属性 Enabled 可用性 Caption 标题 Visible 可见性 ShowModal 显示模式 窗体常用方法 Show 显示 Hide 隐藏 窗体常用事件 UserForm_Activate 激活 UserForm_QueryClose 退出   2....

VBA 判断字符串包含函数

在Excel里面经常要处理的一个情况就是筛选出某一列中包含某个字符串的数据,这个时候如果用查找可以单个找,但是要一起筛选出来不是很方便。 这个时候可以通过VBA编程来解决,比较后再另一列中做个标记,然后再通过筛选功能就很轻松了。 编程实现时最重要的就是字符串比较函数Instr了。Instr函数用法,具体的例子: If  InStr(1, .Cells(i,...

批量横向打印Excel

使用VBA脚本写的,具体使用如下:在批量需要打印的Excel文档下面,新建一个文档,将代码粘贴VBA工程里,然后运行即可。 具体代码如下: Attribute VB_Name = "模块1" SubPiLiangPring() Attribute PiLiangPring.VB_ProcData.VB_Invoke_Func = "14" Dim curP...

VBA 字符串处理

1 VBA中的字符串 2 VBA中处理字符串的函数     2.1 比较字符串     2.2 转换字符串     2.3 创建字符串     2.4 获取字符串的长度     2.5 格式化字符串     2.6 查找字符串     2.7 提取字符/字符串     2.8 删除空格     2.9 返回字符代码     2.10 返回数值代表的相应字符...

AutoCAD利用VBA宏绘制直线

利用VBA宏代码绘制直线,可以设置线性,设置直线颜色,对直线进行操作。 绘制直线主要用到addline函数,该函数接受两个参数,第一个参数指点直线起点startpoint,第二个参数指定直线终点endpoint,新的直线实例被添加到绘图空间。 定义绘制直线的函数creatline,代码如下。 Sub creatline() Dim startpoint(0...