VBA按列名称或是按表格标题给EXCEL表格做排序

本文介绍了如何使用VBA编程在Excel中根据列名称或表格标题进行排序。提供了支持升序和降序排序的函数,并且允许自定义开始行。虽然最初仅支持单列排序,但经过更新后,现在可以处理多列排序,允许列名和标题混排,并通过空格或后缀指定排序方式。
摘要由CSDN通过智能技术生成

VBA给EXCEL表格做排序

按列名称或是按标题给表格排序

在VBA编程时,经常会对表格内容进行排序,为了方便对不同需求下的内容排序,编制了下面这个函数,此函数可以根据给定的列名称(A、B、C……),或是列的标题(“序号”、“姓名”、“年龄”……)进行排序,并且可以指定是升序或是降序。
本函数可以设置需要排序的开始行(标题行),默认为有标题行,默认为所有的列全部参与排序,表格的全部列数一般不超过26列。
本函数暂不支持对多列同时排序,有兴趣的可以对col_Name进行解析,并逐个添加排序列:Ws_Rec.Sort.SortFields.Add,可以实现多列排序。

引用方法:
Sort_Ws ActiveWorkbook.ActiveSheet, “A”, , xlDescending

Function Sort_Ws(Ws_Rec As Worksheet, Col_Name, Optional Row As Integer = 1, Optional Sort As Integer = xlAscending)
'排序 按照名称
Dim Last_Row As Integer
Dim Last_Col As Integer
On Error GoTo err
Sort_Ws = True
Last_Row = Ws_Rec.UsedRange.Rows(Ws_Rec.UsedRange.Rows.Count).Row
Last_Col = Ws_Rec.UsedRange.Columns(Ws_Rec.UsedRange.Columns.Count).Column
If Sort <> xlAscending Then Sort = xlDescending
If Not Col_Name Like "[a-zA-Z]" Then
    Set Col_Name = Ws_Rec.Range(Row & ":" & Row).Find(Col_Name, lookat:=xlWhole)
    If Not Col_Name Is Nothing Then Col_Name = Col_Name.Column
    Col_Name 
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值