第一章 入門(mén)篇 1.16 Sort語(yǔ)句 1、Sort語(yǔ)句格式 Sort語(yǔ)句的功能相當(dāng)于Excel菜單里的“排序”。該語(yǔ)句的語(yǔ)法是這樣的: 單元格對(duì)象.Sort(Key1,Order1,Key2,Type,Order2,Key3,Order3,Header,OrderCustom,Orientation,SortMethod,DataOption1,DataOption2,DAtaOption3) 可能有人看到這里就頭大了,怎么這么多參數(shù)?就象我開(kāi)始說(shuō)的那樣,如果你不是想精通學(xué)習(xí)VBA,里面的很多參數(shù)都是我們平時(shí)用不到的、甚至根本不需要去了解的。但是如果你靜下心來(lái)仔細(xì)觀察這些參數(shù),你就會(huì)發(fā)現(xiàn),它們的設(shè)置,與我們點(diǎn)擊Excel菜單里的“排序”以后出現(xiàn)的對(duì)話(huà)框,在對(duì)話(huà)框里要選擇的功能是一一對(duì)應(yīng)的?,F(xiàn)在我們主要對(duì)這個(gè)語(yǔ)句的Key,Order和Header參數(shù)做一下講解。 一、Key1、Key2、Key3是排序關(guān)鍵列,也就是以哪一列為關(guān)鍵詞進(jìn)行排序,可以用這一列的某個(gè)單元格表示,比如排序A列,用Range('a1')。 Key至少使用1個(gè),最多使用3個(gè),也就是說(shuō)最多可以選取3個(gè)關(guān)鍵詞排序。 二、Order1、Order2、Order3是排序模式,默認(rèn)升序,簡(jiǎn)寫(xiě)為1,降序簡(jiǎn)寫(xiě)為2。 三、Header表示排序區(qū)域是否有表頭 有表頭,簡(jiǎn)寫(xiě)為1,默認(rèn)沒(méi)有表頭,簡(jiǎn)寫(xiě)為2。 知道了這些參數(shù)的含義以后,我們就可以用它來(lái)寫(xiě)語(yǔ)句了: Range('a1:e10').Sort Range('a1'), 1 對(duì)'a1:e10'區(qū)域進(jìn)行排序,排序關(guān)鍵詞是A列,升序排列。 2、小程序 對(duì)下表進(jìn)行排序,以“資產(chǎn)名稱(chēng)”列和“原值”列為關(guān)鍵詞,其中“資產(chǎn)名稱(chēng)”列升序排序,“原值”列降序排,并且保留表頭(也就是表頭不參與排序,一直在最上邊一行):
Sub 排序() Dim ss As Range Set ss = Range('a1').CurrentRegion ss.Sort Range('b1'), 1, Range('d1'), , 2, Header:=1 End Sub 在VBA程序里,把一個(gè)值賦值給一個(gè)變量,格式就是“變量=值”。但把一個(gè)對(duì)象賦值給一個(gè)變量,需要在變量前加“set”,比如在上面這個(gè)程序里,把Range('a1').CurrentRegion,與'a1'單元格相連接的一片區(qū)域這個(gè)對(duì)象賦值給一個(gè)變量,用的是“Set ss =Range('a1').CurrentRegion”。 VBA會(huì)按照語(yǔ)句格式里的參數(shù)順序逐個(gè)辨別每個(gè)參數(shù)的含義,所以在寫(xiě)代碼時(shí)直接寫(xiě)簡(jiǎn)寫(xiě)或者空著就可以了,不用打上key、order、type、header等。比如Range('a1:e10').Sort Range('a1'), 1這個(gè)語(yǔ)句,系統(tǒng)會(huì)自動(dòng)把 Range('a1'), 1這兩個(gè)參數(shù)默認(rèn)為Key1,Order1。 但如果中間有些參數(shù)忽略不寫(xiě)了,直接跳到下一個(gè)參數(shù),為了讓系統(tǒng)識(shí)別這個(gè)參數(shù)是什么,就需要寫(xiě)上參數(shù)名稱(chēng),如程序里的“Header:=1”。另一種做法就是把忽略的參數(shù)都用逗號(hào)補(bǔ)上,讓系統(tǒng)知道這個(gè)參數(shù)我沒(méi)有對(duì)它賦值,是空的。所以小程序里的排序語(yǔ)句也可以這樣寫(xiě):ss.Sort Range('b1'), 1, Range('d1'), , 2, , , 1,需要告訴系統(tǒng)做什么的參數(shù)都有值,沒(méi)有值的參數(shù)直接用逗號(hào)略過(guò),這樣參數(shù)的順序與Sort語(yǔ)句的格式一一對(duì)應(yīng),系統(tǒng)就會(huì)逐個(gè)認(rèn)領(lǐng)。 在這篇文章的結(jié)尾,怕有些讀者對(duì)語(yǔ)句格式里比較靠前的Type參數(shù)一直納悶,所以就在這里給大家介紹一下吧。 Type參數(shù)指定要排序的元素,這個(gè)排序是在排序數(shù)據(jù)透視表時(shí)使用。它有兩個(gè)參數(shù):xlSortLabels按標(biāo)簽對(duì)數(shù)據(jù)透視表排序、xlSortValues按值對(duì)數(shù)據(jù)透視表排序。 |
|