“VBA代碼解決方案”這套教程是我最早推出的教程,目前已經是第二版修訂了。這套教程定位於入門後的提高教程,在學習這套教程過程中,側重點是要理解及掌握我的“積木編程”思想。這套教程共三冊,一百四十七講,內容覆蓋較廣,也是初級和中級間的過度教程,改版後的內容主要是提供程序源碼文件及代碼修正爲32位和64位兼用代碼。今後一段時間會給大家陸續推出。今日的內容是第2講:VBA代碼中七種類型數據的應用

數據,在人們日常工作中不可缺少,卻很少有人能仔細的研究這其間的規律,因爲太枯燥了,單單是一個分類就有很多,今日講在VBA中數據的分類。

1 字符串類型

符號:String

字符串是用於保存文本數據的,字符串內容應放置於雙引號內。字符長度4字節。

“您好”不可以 “您好” 可以

2 字節型

符號:Byte

字節型字符的長度是1個字節。

3 布爾型

符號Boolean

布爾型數據用於表示邏輯值:真、假 。其中“真”爲True,“假”爲False。布爾值數據常用於條件判斷語句。布爾型字符長度是2個字節。

  • 應當注意的是,當其它數據類型轉換爲布爾值時,0會轉成False,其它值則變成True。當把布爾值轉換成其他數據類型時,False會轉換爲0,True則是-1。
  • 注意:和EXCEL的不同點:當把布爾值轉換成其他數據類型時,False會轉換爲0,True則是-1。

VBA中用於表示數字的數據類型有4種:

整型 Integer,佔用兩個字節;長整型 Long,佔用4個字節;單精度浮點型 Single,佔用4個字節;雙精度浮點型 Double,佔用8個字節.

1) 整型及長整型用於表示整數,單精度與雙精度浮點型都用於表示小數。

2) 整型與長整型的區別在於兩者所能表示的數值範圍不同:

3) 整型數據能表示的數據範圍:-32768 ~ 32767

4) 長整型數據能表示的數據範圍:-2147483648 ~ 2147483647

5) 單精度浮點數與雙精度浮點數除了在數值範圍不同之外,兩者所能表示的數據精度(即小數點後多少位)也是不同的

6) 單精度浮點型能表示的數據範圍:

在表示負數時: -3.402823E38 ~ -1.401298E-45

在表示正數時: 1.401298E-45 ~ 3.402823E38

7) 雙精度浮點型能表示的數據範圍:

在表示負數時: -1.79769313486231E308 ~ -4.94065645841247E-324

在表示正數時: 4.94065645841247E-324 ~ 1.79769313486231E308

8) 單精度浮點型其精度是6,即只能保存小數點後最多6位的數據;如果超出以上長度,則超出部分會被去掉,並且會自動四捨五入。

9)雙精度浮點型其精度是14,即只能保存小數點後最多14位的數據。如果超出以上長度,則超出部分會被去掉,並且會自動四捨五入。

  • 上述各類型的數據在使用時要遵守的一個原則就是:夠用就好。而不是越大越好。
5 日期型數據

符號Date

日期型數據不僅可以表示日期,還可以表示時間。可以表示的日期範圍是:100年1月1日 ~ 9999年12月31日;可以表示的時間範圍是:0:00:00 ~ 23.59.59。佔用8個字節。

能被Excel識別到的日期,都可以賦值給日期型變量。

6 變體型數據

符號Variant 變體型數據是一種特殊的數據類型,幾乎可以用於保存所有其它數據類型的數據。可以簡單地理解爲:當不知道變量所要表示的數據是什麼類型時,就把它定義爲Variant。

7 對象型數據

符號Object

對象型是VBA中另一種特殊的數據類型。有點類似於其它高級編程語言中的“對象”,它們都有自己的屬性與方法.

上面講了在VBA中用到的各種數據的類型,這些其實在我們的寫代碼中經常會用到,加以規範的總結是必要的,不要認爲這些簡單,數的理論往往看着簡單,往往有很深奧的知識在裏面。一切聖賢皆以無爲法而有差別,最簡單的道理是最大的。

實例:在寫代碼時,在命名變量時,最好使用規範的語句進行聲明:如,想要給某數據分數表數據求和,把值放在SUM_NO1中,由於是分數,將會出現小數,而小數的位數不會很多,所以就要利用下面的語句聲明:

DIM SUM_NO1 AS Single ’單精度浮點型 Single,佔用4個字節

寫到這裏,肯定會有讀者會問什麼是字節?此知識點不在本平臺的講解範圍內,只做簡單的講解,字節(Byte ):是計算機信息技術用於計量存儲容量的一種計量單位,通常情況下一字節等於八位。也就是說八個二進制位構成1個"字節(Byte)",1個字節可以儲存1個英文字母或者半個漢字,1個漢字佔據2個字節的存儲空間。

今日內容迴向:

1 VBA 中可用的數據類型有哪些?

2 上面分數的表示中用Double代替Single 是否可以?說出自己的觀點。

本講內容參考程序文件:VBA代碼解決方案修訂(1-48).xlsm

我20多年的VBA實踐經驗,全部濃縮在下面的各個教程中:

第7套教程(共三冊):《VBA之EXCEL應用》:是對VBA基本的講解

第1套教程(共三冊):《VBA代碼解決方案》:是入門後的提高教程

第4套教程(16G):VBA代碼解決方案之視頻(第一套的視頻講解)

第3套教程(共兩冊):《VBA數組與字典解決方案》:是對數組和字典的專題講解

第2套教程(共兩冊):《VBA數據庫解決方案》:是對數據庫的專題講解

第6套教程(共兩冊):《VBA信息獲取與處理》:講解VBA的網絡及跨程序應用

第5套教程(共兩冊):VBA中類的解讀和利用:類及接口技術的講解

第8套教程(共三冊):VBA之Word應用(最新教程):word中VBA的利用

上述教程的學習順序:

① 7→1→3→2→6→5或者7→4→3→2→6→5。

② 7→8

相關文章