所謂變量,,就是可變的量,。我們?cè)谇懊嬉呀?jīng)接觸到了,有了變量我們就可以在循環(huán)里實(shí)現(xiàn)數(shù)據(jù)或單元格的自動(dòng)變換,。變量其實(shí)就好象在內(nèi)存中臨時(shí)存放的小盒子,,這種盒子有好幾種,每種里存放相應(yīng)的物體,。 一,、變量類型 在VBA中我們常用到的變量類型有數(shù)字型(Byte、Integer,、Long,、Single、Double),、文本型(String),、布爾型(Boolean)、日期型(Data),、對(duì)象,、數(shù)組等,有的是很多編程語(yǔ)言里常用到的,,有的則是Excle中為了簡(jiǎn)便操作而特殊定義的類型,。具體變量類型的說(shuō)明我們?cè)赩BA編輯器里按F1可以查看幫助文件,Visual Basic 語(yǔ)言參考下面有數(shù)據(jù)類型,。 1,、數(shù)值型 我們用Excel主要就是來(lái)處理數(shù)據(jù)的,所以數(shù)值類型是必然有的。數(shù)值類型又有整數(shù)和小數(shù)之分,,即整型和浮點(diǎn)型,。上面的例子是定義了一個(gè)整數(shù)類型的X,如果需要定義浮點(diǎn)型的則用關(guān)鍵字Float,。 2,、文本型 我們錄入單元格里的內(nèi)容除了數(shù)字還有字母和漢字,這些都是文本類型的字符,,用關(guān)鍵字String,。這里值得注意的地方是,VBA中漢字的長(zhǎng)度是按照1個(gè)字符計(jì)算的,,這個(gè)其它大多數(shù)語(yǔ)言是不一樣的,即用方法len得到的漢字長(zhǎng)度就是漢字的個(gè)數(shù),,用lenb才會(huì)按照2個(gè)字符計(jì)算漢字,。 3、對(duì)象 這是VBA與眾不同的地方,,它會(huì)涉及到很多對(duì)單元格的操作,,比如改變格式,所以專門設(shè)計(jì)了單元格類型的變量,。所以變量的初始值都可以用set方法設(shè)置,。 4、數(shù)組 數(shù)組是很多編程語(yǔ)言都具備的變量類型,。有了數(shù)組你就可以一次定義很多變量,,也可以非常有效的存儲(chǔ)數(shù)據(jù)。VBA里的定義方式比較特殊些,,不要忘了括號(hào)里是(a To b),,而不是(a, b)。 以上是簡(jiǎn)單介紹了幾種常用的數(shù)據(jù)類型,,學(xué)會(huì)了查幫助文件就會(huì)學(xué)到很多知識(shí),。需要注意的是每種數(shù)據(jù)類型都是有范圍的,它們?cè)趦?nèi)存中占用的大小是不一樣的,,所以它們能存放的東西也是有大小限制的,。下面的表格列舉了各種類型占用內(nèi)存的大小和能夠存放數(shù)據(jù)的范圍。在使用的時(shí)候一定要注意選取合適的,,一來(lái)不要出現(xiàn)整型數(shù)據(jù)里存放浮點(diǎn)數(shù)的錯(cuò)誤,,二來(lái)不要大材小用浪費(fèi)內(nèi)存。 二,、變量的聲明 有人會(huì)問(wèn),,我可不可以不聲明變量,讓計(jì)算機(jī)自動(dòng)去處理呢?答案是可以,,但是這樣會(huì)造成內(nèi)存的浪費(fèi),。當(dāng)然,有的時(shí)候我們確確實(shí)實(shí)不知道該聲明成什么變量,。 但是,,如果你選擇了要求變量聲明,你必須進(jìn)行聲明,,否則會(huì)編譯錯(cuò)誤,。(工具--選項(xiàng)--編輯器標(biāo)簽下面有這個(gè)選項(xiàng),如果勾選了,,在編輯器的頂端會(huì)有Option Explicit,。) 聲明變量的方式常用的有幾種,每種都可以一次聲明多個(gè)變量,,多個(gè)變量名稱見用逗號(hào)隔開: Dim 變量名稱 As 變量類型,,最常用的變量聲明方式,可用在過(guò)程和模塊中,。 Public 變量名稱 As 變量類型,,聲明為公共變量。 Private 變量名稱 As 變量類型,,聲明為私有變量,。 Static 變量名稱 As 變量類型,聲明靜態(tài)變量,,在整個(gè)代碼運(yùn)行期間它的值不會(huì)變化,。 如果我們一時(shí)不知道該聲明成什么變量類型,只聲明變量名稱而不指定變量類型,,則默認(rèn)為Variant類型(變體型),,它會(huì)根據(jù)需要存儲(chǔ)的數(shù)據(jù)類型改變自己的類型與之匹配。還是那句話,,盡量少用,,因?yàn)闀?huì)造成內(nèi)存的浪費(fèi)。 三,、變量的存活周期 變量分為過(guò)程級(jí)變量,、模塊級(jí)變量和全局變量,不同的變量有不同的使用范圍和在內(nèi)存中存活周期,。 1,、過(guò)程級(jí)變量:每一個(gè)Sub就是一個(gè)過(guò)程,在其中聲明的變量均為過(guò)程級(jí)變量,,可用Dim或Static聲明,。過(guò)程結(jié)束,,變量值釋放。 2,、模塊級(jí)變量:一個(gè)模塊中可以有多個(gè)過(guò)程,,在所有過(guò)程之外聲明的變量就是這個(gè)模塊共享的變量,可用Dim或Private聲明,。變量的值只在本模塊中保持,,工作簿關(guān)閉時(shí)釋放。 3,、全局級(jí)變量:用Public聲明的變量就是全局變量,,在任何一個(gè)模塊中的任何位置都可以聲明。 在所有的模塊中都可以調(diào)用,,值會(huì)保存到Excel關(guān)閉時(shí)才會(huì)被釋放,。 相關(guān)筆記請(qǐng)參閱: Excel VBA 學(xué)習(xí)筆記3:循環(huán)語(yǔ)句 |
|