2.深入解析数据类型与变量——《Excel VBA 程序开发自学宝典》

2.1 数据类型

数据类型

所占字节

Byte

1

Boolean

2

Integer

2

Long

4

Single

4

Double

8

Currency

8

Decimal

14

Date

8

Object

4

String

10

Variant

16

实例:


Sub test()

  Dim sums as long, cell as range, I as integer, mystr as string

  For each cell in range(“A1:A10”)

    If vba.isnumeric(cell) then sums = sums + cell else mystr = mystr & cell

    If cell = “” then I = I +1

  Next cell

  Debug.print “A1:A10中有空白单元格” & I &”个”

  Debug.print “A1:A10中数据和为:” ; sums

  Debug.print “A1:A10中文本为:” ; mystr

End sub


2.2 数据类型转换

函数

返回类型

Cbool

Boolean

Cbyte

Byte

Ccur

Currency

Cdate

Date

cbdl

double

Cdec

Decimal

Cint

Integer

Clng

Long

Csng

Single

Cstr

String

cvar

variant

实例:


Sub 类型转换()

  Dim funds as double

  Funds = 80.42454

  Msgbox “类型:” & typename(funds) & “值:” & funds     ‘typename()用于识别数据类型

  Msgbox “类型:” & typename(cbool(funds)) & “值:” & cbool(funds)

  Msgbox “类型:” & typename(cbyte(funds)) & “值:” &cbyte( funds)

End sub


 

2.3 变量

实例:


 

Sub 显示用户名()

  User_name = application.inputbox(“请输入您的姓名” , “姓名”,,,,,,2)

  Msgbox user_name

End sub


 

Dim temp as byte     ‘在sub之前dim,此变量为模块级变量,或者用public申明

Sub a()

  Temp = 10

  Msgbox temp

End sub

Sub b()

  Temp = temp + 10

  Msgbox temp

End sub


Sub a()

  Dim temp = as byte    ‘在sub内dim,两个sub内的变量不相关,为过程级别变量

  Temp = 10

  Msgbox temp

End sub

Sub b()

  Dim temp as byte

  Temp = 20

  Temp = temp + 10

  Msgbox temp

End sub


 

 Let A = 10    ‘对非对象变量赋值

Set A = range(“A10”)     ‘对单元格对象赋值

Set A = [A10]


 

 Sub 设置A10的字体()

  Activeworkbook.sheets(“sheet2”).range(“A10”).font.name = “黑体”

  Activeworkbook.sheets(“sheet2”).range(“A10”).font.colorindex= 3

  Activeworkbook.sheets(“sheet2”).range(“A10”).interior.colorindex = 5

End sub

Sub 设置A10的字体二()

  Dim rng as range

  Set rng = activeworkbook.sheets(“sheet2”).range(“A10”)

  Rng.font.name = “黑体”     ‘设置单元格对象后,程序简化很多而且提升效率

  Rng.font.colorindex = 3

  Rng.interior.colorindex = 5

End sub

猜你喜欢

转载自www.cnblogs.com/data-science-chinchilla/p/8995781.html