日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

學(xué)習(xí)VBA,報(bào)表做到飛 第一章 入門(mén)篇 1.16 Sort語(yǔ)句

 拾叁億人 2023-04-05 發(fā)布于云南

第一章 入門(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)”列升序排序,“原值”列降序排,并且保留表頭(也就是表頭不參與排序,一直在最上邊一行):

卡片號(hào)

資產(chǎn)名稱(chēng)

建卡日期

原值

凈值

00007933

空調(diào)

2007-12-31

498720.00

14961.60

00007934

臺(tái)式電腦

2007-12-31

35670.00

1070.10

00012189

音響設(shè)備

2007-12-31

12420.00

372.60

00014439

照相機(jī)

2008-06-11

6800.00

204.00

00014439

音響設(shè)備

2008-06-11

6800.00

204.00

00014439

音響設(shè)備

2008-06-11

6800.00

204.00

00072375

監(jiān)控設(shè)備

2013-12-28

16986.00

509.58

00072448

空調(diào)

2013-12-28

6405.00

192.15

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ù)透視表排序。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多