每天更新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
endwith
endsub
執行以上過程,結果如圖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
endwith
with activesheet.sort
.setrange range(
"a1"
).currentregion
.header = xlyes
endwith
endsub
第3行**清除工作表所有的sortfields物件。
第4~7行分別在sort物件中新增sortfields物件。sortfields物件的add方法建立新的排序字段,並返回sortfields物件,其語法格式如下。
add(
key, sorton, order, customorder, dataoption)
該方法的各引數分別對應於range物件sort方法的引數。
第10行**指定sort物件的排序區域。
第11行**指定排序區域包含標題。
第12行**應用工作表排序。
資料結構 多關鍵字排序
一 實驗目的 了解多關鍵字的使用範圍 編寫程式實現多關鍵字的排序。二 實驗原理 依次根據某位進行排序,排好序後更新a i 最後得到的就是根據每位排好序的 a i lsdsort 函式 cnt陣列用來存放某位的個數,tmp陣列存放 a i 資料,根據 cnt 中的資料得到 tmp中存放哪乙個 a i ...
頁面多關鍵字搜尋
var userlist function 初始化方法 userlist.prototype.init function 在table繫結鏈結 datalist click function e 在table繫結鏈結 datalist click function e userlist.protot...
lintcode多關鍵字排序
給定 n 個學生的學號 從 1 到 n 編號 以及他們的考試成績,表示為 學號,考試成績 請將這些學生按考試成績降序排序,若考試成績相同,則按學號公升序排序。使用sort方法,先對item0排序,再對item1排序,優先順序越高的排序越後做 class solution param array th...