寫在最前
本節我們首先會了解VBA編程的數據類型,如果你是小白可以系統地學習一下,如果你已經用過VBA就當做查缺補漏。如果你沒有任何編程經驗的話,數據類型指的是我們對不同數據加的限制,和單元格格式中的分類類似,但是VBA能設置的數據類型更加豐富。
另外本節我們會介紹與數據類型密不可分的“常量和變量”,常量就是一個固定的值,變量可以更換內容重複使用,具體我們會舉例說明。
VBA有哪些數據類型
大部分市面上關於VBA的教程會詳盡地列出VBA的所有數據類型,個人覺得對新手不太友好,很多特殊的類型需要用到的時候百度就可以了。我們先簡單分類說一下VBA有哪些數據類型。
1、數值型
Byte、Integer、Long、Single、Currency、Decimal
2、字符型
String(變長)、Varibale(定長)
3、特殊類型
Date(日期)、Object(對象變量)、Variant(變體型)
當你需要設置變量的時候,可以在下方這張VBA數據類型表中查找:
常量與變量
在編寫VBA的時候,我們常常需要變量(常量是特殊的變量)來實現功能。變量的聲明語句如下:
Dim 變量名 As 數據類型 '注意我們也可以不聲明變量類型,此時默認該變量為Variant類型,該類型會佔用較大空間,不是好的編程習慣
舉個VBA例子說明:根據不同半徑r計算圓的面積S。
Sub 根據半徑r計算圓的面積S() '定義一個Sub過程
Const Pi = 3.14 '聲明圓周率常量
Dim r As Integer
Dim S As Double '定義半徑和麵積變量
r = Range("A2").Value '從A2單元格獲取變量值
S = Pi * r ^ 2 '計算面積S
Range("B2").Value = S '把面積S的值輸出到B2單元格
End Sub
輸出前的準備:
執行宏後輸出結果:
其他一些關於變量的知識點
雖然我力求全面地介紹VBA的知識幫助各位從零基礎到能用VBA解決各式各樣的業務問題,但是有時候為了教材的通俗易通經常會放棄很多知識點。這裡我們簡單地介紹一些可能會用到的知識點。
1、給對象變量賦值時必須帶上set
前面的求圓面積的例子中,我們對半徑r的賦值如下:
r = Range("A2").Value
但是如果要給對象變量賦值,比如Range變量
Dim rng As Range
Set.rng = WorkSheets("Sheet1").Range("A1") '令rng為A1單元格
2、變量是可以有作用域的
作用域的意思是指變量可以在哪個模塊或者過程中調用。比如沒有特殊聲明的時候,一個Sub過程中的變量並不能影響另一個Sub過程。具體情況如下:
寫在最後
所有編程語言都包含各式各樣的變量類型,選擇合適的變量類型可以提高模型運行的效率和準確性。很遺憾我並不能也沒有必要在這樣短短一篇文章窮盡關於VBA變量和數據類型的所有知識,如果在實務中碰上無法解決的問題,請合理使用搜索引擎~
閱讀更多 TOMOCAT 的文章