ExcelVBA從入門到精通——(3)VBA的數據類型與常量變量

ExcelVBA從入門到精通——(3)VBA的數據類型與常量變量

寫在最前

本節我們首先會了解VBA編程的數據類型,如果你是小白可以系統地學習一下,如果你已經用過VBA就當做查缺補漏。如果你沒有任何編程經驗的話,數據類型指的是我們對不同數據加的限制,和單元格格式中的分類類似,但是VBA能設置的數據類型更加豐富。

ExcelVBA從入門到精通——(3)VBA的數據類型與常量變量

設置單元格格式

另外本節我們會介紹與數據類型密不可分的“常量和變量”,常量就是一個固定的值,變量可以更換內容重複使用,具體我們會舉例說明。

VBA有哪些數據類型

大部分市面上關於VBA的教程會詳盡地列出VBA的所有數據類型,個人覺得對新手不太友好,很多特殊的類型需要用到的時候百度就可以了。我們先簡單分類說一下VBA有哪些數據類型。

1、數值型

Byte、Integer、Long、Single、Currency、Decimal

2、字符型

String(變長)、Varibale(定長)

3、特殊類型

Date(日期)、Object(對象變量)、Variant(變體型)

當你需要設置變量的時候,可以在下方這張VBA數據類型表中查找:

ExcelVBA從入門到精通——(3)VBA的數據類型與常量變量

圖來自《別怕,ExcelVBA其實很簡單》

常量與變量

在編寫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

輸出前的準備:

ExcelVBA從入門到精通——(3)VBA的數據類型與常量變量

在A2單元格輸入半徑r

執行宏後輸出結果:

ExcelVBA從入門到精通——(3)VBA的數據類型與常量變量

執行宏

ExcelVBA從入門到精通——(3)VBA的數據類型與常量變量

執行宏後的結果

其他一些關於變量的知識點

雖然我力求全面地介紹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過程。具體情況如下:

ExcelVBA從入門到精通——(3)VBA的數據類型與常量變量

變量的作用域

寫在最後

所有編程語言都包含各式各樣的變量類型,選擇合適的變量類型可以提高模型運行的效率和準確性。很遺憾我並不能也沒有必要在這樣短短一篇文章窮盡關於VBA變量和數據類型的所有知識,如果在實務中碰上無法解決的問題,請合理使用搜索引擎~


分享到:


相關文章: