一、數(shù)據(jù)類(lèi)型
| 數(shù)據(jù)類(lèi)型 | 代碼 | 聲明字符 | 范圍描述 |
|---|---|---|---|
| 整數(shù)型 | Integer | % | -32768~32767之間的整數(shù) |
| 長(zhǎng)整數(shù)型 | Long | & | -217473648~217473647之間的整數(shù) |
| 單精度型 | Single | ! | |
| 雙精度型 | Double | # | |
| 貨幣型 | Currency | @ | |
| 日期型 | Date | ||
| 文本型 | String | $ | |
| 布爾型 | Boolean | True 或 False | |
| 對(duì)象 | Object | 對(duì)象變量,用來(lái)引用對(duì)象 |
二、變量
- 強(qiáng)制聲明變量
方法一:
在模塊中的第一句寫(xiě)下如下代碼:
Option Explicit
方法二:設(shè)置:
工具-選項(xiàng)-編輯器-勾選"要求變量聲明"
- 變量類(lèi)型及作用域
| 類(lèi)型 | 作用域 | 描述 | 區(qū)別 |
|---|---|---|---|
| 本地變量 | 本過(guò)程中 | 在一個(gè)過(guò)程中,使用Dim或Static | 在過(guò)程中聲明,不在過(guò)程前 |
| 模塊級(jí)變量 | 本模塊 | 第一個(gè)過(guò)程前,使用Dim或Private | 在模塊的第一個(gè)過(guò)程前聲明 |
| 公共變量 | 所有模塊 | 在模塊的第一個(gè)過(guò)程前,使用Public聲明 | 在模塊的第一個(gè)過(guò)程前聲明 |
- 聲明變量示例
1.本地變量
Option Explicit
sub 本地變量()
Dim a as integer 'Dim 聲明在Sub 過(guò)程中,所以a為本地變量,作用域僅限于本過(guò)程
Static B As Integer 'Static聲明在Sub 過(guò)程中,所以B為本地變量,作用域僅限于本過(guò)程
End sub
2.模塊級(jí)變量
'以下代碼寫(xiě)在模塊中
Option Explicit
Dim a as integer 'Dim 聲明在第一個(gè)Sub 過(guò)程前,所以a為模塊級(jí)變量,作用域在本模塊
Private B As Integer 'Private聲明在第一個(gè)Sub 過(guò)程前,所以B為模塊級(jí)變量,作用域在本模塊
sub 本地變量
Msgbox "你好!"
End sub
3.公共變量
'以下代碼寫(xiě)在模塊中
Option Explicit
Public a as integer 'Public 聲明在第一個(gè)Sub 過(guò)程前,所以a為公共變量,作用域在該Workbook的所有模塊
Sub 本地變量
Msgbox "你好!"
End sub
- 把數(shù)據(jù)存儲(chǔ)到變量里
把數(shù)據(jù)存儲(chǔ)到變量里,稱(chēng)為給變量賦值
1.給數(shù)值\日期\文本等數(shù)據(jù)變量賦值用等號(hào)"="
Sub text
Dim Str as string '聲明str變量為string型
Let Str="你好! " '給變量str 賦值,"Let"通常省略不寫(xiě)
Range("A1")=Str '將變量值寫(xiě)入活動(dòng)工作表的A1單元格
End sub
2.給對(duì)象變量賦值:必須用Set
Sub text
Dim Rng as Range
set rng = worksheets("sheet1").range("A1")
rng.value="你好!" ' ".Value"通常也省略不寫(xiě)
End Sub
三.常量
- 常量用一存儲(chǔ)一些固定的,不會(huì)被修改的值,如圓周率,個(gè)人所得稅率等
- 常量也需要聲明(名稱(chēng)\數(shù)據(jù)類(lèi)型),并且要賦值,且在賦值后不能再次賦值
- 常量用Const 變量名 As 數(shù)據(jù)類(lèi)型 = 數(shù)值的格式賦值
sub text
const P as single = 3.14
Range("a1") = P
end sub
- 常量的作用域
常量的作用域同變量一樣,可用于sheets中,也可寫(xiě)在模塊中
| 類(lèi)型 | 作用域 | 描述 | 區(qū)別 |
|---|---|---|---|
| 本地變量 | 本過(guò)程中 | 在一個(gè)過(guò)程中,使用Const | 在過(guò)程中聲明,不在過(guò)程前 |
| 模塊級(jí)變量 | 本模塊 | 第一個(gè)過(guò)程前,使用Const | 在模塊的第一個(gè)過(guò)程前聲明,跟變量不一樣,不能用Private聲明 |
| 公共變量 | 所有模塊 | 在模塊的第一個(gè)過(guò)程前,使用Public聲明 | 在模塊的第一個(gè)過(guò)程前聲明 |