如何明確VBA變量的數(shù)據(jù)類型

2018-11-14 11:18 更新

如果你在Dim語句里沒有明確變量的數(shù)據(jù)類型,你最終將得到?jīng)]有歸類的變量。沒有歸類的包括,在VBA里,總是當成Variant數(shù)據(jù)類型。高度建議你產(chǎn)生歸類了的變量。當你聲明變量為某種數(shù)據(jù)類型,你的VBA程序會運行得更快一些,因為VB不需要停下來分析Variant變量到底是什么類型。


VB可以使用很多種數(shù)字變量。Integer變量只能保存從–32,768到32,767之間的所有整數(shù)。其它類型的數(shù)字變量有Long,Single,Double和Currency。Long變量可以保存從–2,147,483,648到2,147,483,647范圍的所有整數(shù)。與Integer和Long相反,Single和Double變量可以保存小數(shù)。String變量用來引用文本。當你聲明了一個String數(shù)據(jù)類型的變量時,你最好告訴VB這個字符串有多長,例如:


Dim extension As String * 3


聲明變量extension字符串的長度為3個字符。如果你不給它分配一個明確的長度,這個字符串變量將是動態(tài)的。這意味著VB將會占用足夠大的電腦內(nèi)存來處理任意容量的文本。聲明了變量后,你只能保存聲明語句里顯示的信息類型。給數(shù)字類型的變量賦文本值,或給文本類型變量賦數(shù)字值,都會導(dǎo)致“類型不匹配”的錯誤信息,或者導(dǎo)致VB修正該值。例如,如果你的變量聲明為保存整數(shù),而你的數(shù)據(jù)是小數(shù), 那么VB會忽略小數(shù)部分而只用數(shù)據(jù)的整數(shù)部分。試驗一下下面的MyNumber過程,看看VB是如何修正數(shù)據(jù)以適合變量數(shù)據(jù)類型的:


Sub MyNumber()
           Dim myNum As Integer
           myNum = 23.11
           MsgBox myNum
End Sub


如果你不用Dim語句聲明變量,你通過在變量名稱后面加上一個特殊字符同樣可以指明該變量的類型。例如下面,你可以在變量名稱后面附上美元($)符號,來指明變量FirstName為字符串類型(String):

Dim FirstName$


上面的聲明和Dim FirstName As String是一樣的。其它類型的聲明字符列在表3-2里面。


類型聲明字符

表3-2 類型聲明字符


注意,類型聲明字符只能用于六種數(shù)據(jù)類型。將這些字符附在變量名稱后面就可以使用這些類型聲明字符了。過程AgeCalc2示范表3-2中類型聲明字符的使用情況:


Sub AgeCalc2()
             'variable declaration (變量聲明)
              Dim FullName$
              DateOfBirth As Date
              Dim Age%
              'assign values to variables (給變量賦值)
              FullName$ = "John Smith"
              DateOfBirth = #01/03/1967#
              'calculate age (計算年齡)
              Age% = Year(Now())-Year(DateOfBirth)
              'print results to the Immediate window (在立即窗口里輸出結(jié)果)
              Debug.Print FullName$ & " is " & Age% & " years old."
End Sub


技巧: 聲明變量類型
變量類型可以用As后面的關(guān)鍵字來標示,也可以用后面附加的類型符號來標示。如果你既不加類型符號也不使用As命令,那么這個變量將為默認的類型,那就是VBA中的Variant類型。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號