白日文章网 手机版

货币型数据是什么(数据类型 - EXCEL VBA)

100次浏览     发布时间:2025-01-22 05:46:25    

在软件开发中,数据类型是指变量或对象可以存储的数据的特定类型。不同的编程语言和软件平台可能具有不同的数据类型。使用 Excel VBA 进行编程时,正确选择适当的数据类型对于程序的性能和正确性非常重要。下面用具体代码介绍EXCEL VBA各种数据类型。

1、整型(Integer)

整型数据存储为16位(2个字节)的数字形式,其范围为[−32768, 32767] 。整型数据运行较快,而且占用内存较少。整型数据变量声明如下:

Dim x as Integer
Dim x% 

以上两条语句都声明了一个整数变量。注意,整型的类型声明字符是百分号(%)。

2、长整型(Long)

长整型数据存储为32位(4个字节)有符号的数字形式,其范围为[−2147483648, 2147483647]。长整型数据变量声明如下:

Dim x As Long
Dim x& 

如果要在VBA程序中保存较大数值,可采用长整型变量来保存。长整型的类型声明字符是和号(&)。

3、单精度浮点型(Single)

整型和长整型都用来表示整数,很多场合需要处理小数,这是就需要使用实数型数据。

实数型分为单精度浮点型和双精度浮点型。单精度浮点型数据存储为32位(4个字节)浮点数值的形式。通常以指数形式(科学计数法)来表示,以“E”或“e”表示指数部分。

其范围在负数的时候为[−3.402823E38, −1.401298E−45]、正数时为[1.401298E−45, 3.402823E38]。单精度浮点型的类型声明字符是感叹号(!),变量声明如下:

Dim x As Single
Dim x! 

4、双精度浮点型(Double)

双精度浮点型可以表示精度更高和更大的数值。双精度浮点型数据存储为64位(8个字节)浮点数值的形式。

其范围在负数的时候为[−1.79769313486231E308, −4.94065645841247E−324],

正数时为[4.94065645841247E−324, 1.79769313486231E308]

双精度浮点型的类型声明字符是数字符号(#),变量声明如下:

Dim x As Double
Dim x# 

若VBA程序中处理的数据范围很大,或小数位很多,可采用双精度浮点型。

5、货币型(Currency)

该种数据类型主要用来表示货币值。货币类型数据存储为64位(8个字节)整型的数值形式。其小数点左边有15位数字,右边有4为数字。

这种表示法其范围在负数的时候为[−922337203685477.5808, 922337203685477.5807]

货币型的类型声明字符是at符号(@),变量声明如下:

Dim x As Currency
Dim x@ 

货币型数据类型在货币计算中很有用,在这种场合精度特别重要。浮点型数据比货币型数据范围大得多,但有可能产生小的进位误差,而货币型采用更多的字节保存数据,能减少计算误差。

6、字节型(Byte)

字节型数据类型为数值型,用来保存[0, 255]之间的整数,占用8位(1个字节)存储空间。常用字节型数据类型存储二进制数据,变量声明如下:

Dim x As Byte

字节型表示的数据范围有限,一般情况下不用来保存数据。

7、字符型(String)

字符型数据类型表示为字符串,VBA中字符串包括在英文半角状态的双引号中,VBA的字符串分为变长与定长两种类型。变长字符串的长度是不确定的,最多可包含大约20亿(2^31)个字符;定长字符串的长度是确定的,可包含1到大约64K(2^16)个字符。变量声明如下:

Dim str1 As String      '变长字符串
Dim str2 As String * 10 '定长字符串
Dim str3 As String
x = "EXCEL VBA"
y = "12345"
z = "" '空字符串 

注:VBA代码中,符号“ ' ”为解释标记符号,“ ' ”后面一般是对该行代码做解释

代码中变量str1为变长字符串,可保存多个字符。变量str2为定长字符串,该变量定义后将一直占用10个字符。

8、布尔型(Boolean)

布尔型数据只有两个值(True或False),该类型适合存储简单的二元信息,可保存为16位2个字符的数值形式。变量声明如下:

Dim x As Boolean

当转换其它类型数据为Boolean值时,0会转换为False,而其它的值则变成True。当转换Boolean值为其它数据类型时,False成为0,而True成为-1。

9、日期型(Date)

VBA支持复杂的日期操作和运算。日期型数据存储为64位(8个字节)浮点数值形式,可表达的日期范围从1000年1月1日到9999年12月31日,而时间可以从0:00:00到23:59:59。

任何可辨认的文本日期都可以赋值给Date变量。日期文字需要用数字符号(#)括起来,例如,#January 11,1998#。变量声明如下:

Dim x As Date
x = #5/1/2019#
Sheet1.Cells(1, 1) = x
Sheet1.Cells(2, 1).NumberFormatLocal = "m-d-yyyy"
Sheet1.Cells(2, 1) = x 

日期型变量会根据计算机中的短日期格式来显示。时间则根据计算机的时间格式(12小时或24小时时制)来显示。当其它数值类型要转换为日期型时,小数点左边的值表示日期信息,而小数点右边的则表示时间。负数表示1899年12月30日之前的日期。

10、对象型(Object)

VBA是面向对象的程序设计语言,用户可在程序中访问各种对象,如EXCEL的工作表、单元格等。对象型数据存储为32位(4个字节)的地址形式,引用对象时必须使用Set语句给对象变量赋值。对象变量使用结束后,应为其赋值为Nothing。变量声明如下:

Dim myObj As Object
Set myObj = Worksheets("sheet1")
myObj.Cells(1, 1) = "object"
Set myObj = Nothing 

11、变体型(Variant)

变体型是一种特殊数据类型,VBA代码中所有没有被声明的数据类型的变量都默认为变体型。除了定长String数据及用户定义类型外,可以包含任何种类的数据。Variant也可以包含Empty、Error、Nothing及Null等特殊值。可以用VarType函数或TypeName函数来决定如何处理变体型中的数据。样例代码如下:

Dim myObj As Object
Set myObj = Worksheets("sheet1")
y = 100
MsgBox VarType(y)
MsgBox VarType(myObj)
MsgBox VarType(z) 

12、自定义数据类型(Type)

可以使用Type语句定义自己的数据类型。用户自定义类型经常用来表示数据记录,记录一般由多个不同类型的数据元素组成。自定义数据类型定义如下:

Type Product
oName As String          '产品名称
oQuantity As Integer     '库存数量
oPrice As Currency       '单价
oOrder As Integer        '订购量
End Type 

自定义数据类型的定义必须放在模块(模块和类模块)的声明部分。在VBE开发环境中 -> 【插入】 -> 【模块】,系统在资源管理器中加入节点“模块1”。鼠标双击“模块1”节点,在代码窗口通用栏中键入上述代码。如图:

使用Type语句声明了一个用户自定义类型后,就可以在任何事件中声明、使用该类型的变量。可以用Dim、Private、Public、ReDim或Static来声明用户自定义类型的变量。样例代码如下:

Dim myPro As Product
myPro.oName = "电视"
myPro.oQuantity = 10
myPro.oPrice = 2345.99
myPro.oOrder = 5
MsgBox myPro.oName 

13、枚举类型(Enum)

枚举就是将变量的值逐一列举出来,属于该枚举的变量只能取列举的某一个值。当一个变量有几种可能值时,可以定义为枚举类型。枚举类型数据定义如下:

Public Enum Grade
 星期一 = 1
 星期二
 星期三
 星期四
 星期五
 星期六
 星期日
End Enum 

在默认情况下,枚举类型第一项的值是0,而上述枚举类型定义代码自定义设置枚举类型第一项的值为1。

枚举类型定义代码通常也放在模块(模块和类模块)的声明部分。使用Enum语句声明了一个枚举类型后,就可以在任何事件中声明、使用该类型的变量。可以用Dim、Private、Public、ReDim或Static来声明枚举类型的变量。样例代码如下:

Dim myGrade As Grade  '声明自定义枚举变量
myGrade = 星期五      '为变量赋值(键入等号后在下拉列表中选择)
MsgBox myGrade        '显示变量值为5 

键入第二行代码的“=”时,系统自动出现下拉列表(星期一~星期日),用鼠标之间选择某个下拉选项即可。如图:

每一段VBA代码、每一个VBA函数都是从定义数据类型开始的。正确使用数据类型是编写高效、可靠和安全程序的关键。选择正确的数据类型可以提高程序的性能、减少内存使用和防止数据类型转换错误。

相关文章
无手女孩称小学被同学叫做怪物、 推到臭水沟里,直到在电视中看到雷庆瑶才开始接受自己

海报新闻记者 田阳 黄晓荣 成都报道四川成都女孩许方燕7岁时因意外双手截肢,经过努力练习生活技能,她得以重返校园。但身体的残缺让周围同学都用异样的眼光看她。“他们叫我怪物,也会拿石头砸我,或者把我推到水沟里,我甚至觉得他们说的没错,残缺的我确实是异类。”但许方燕的父亲没有放弃她。9岁时的一天凌晨,父

2025-04-19 23:21:00

君珩宋凝烟(夫君失忆后她转修无情道)全本完整阅读最新章节 君珩宋凝烟:结局+番外评价五颗星

林夕瑶柔弱开口:“君珩师兄,这次任务奖励是东海明珠,我想要,你能不能替我打回来……”君珩浑身一震。东海明珠,宋凝烟找了好久的宝物,她一直很想要。可林夕瑶的祈求还在眼前。算了,等下次。下次遇到更好的他再替宋凝烟寻回来,这次就让给夕瑶。反正以后他都会给宋凝烟补偿回来的。想到这儿,君珩点点头:“好,师兄替

2025-04-19 22:38:54

第42届潍坊国际风筝会开幕 世界风筝云端“比武”

中新社潍坊4月19日电(王采怡 王峰)第42届潍坊国际风筝会暨2025潍坊风筝嘉年华19日在山东潍坊世界风筝公园启幕。来自中国、巴西、意大利等51个国家和地区的257支队伍亮相,放飞各式风筝,竞逐苍穹,云端“比武”。4月19日,山东潍坊,第42届潍坊国际风筝会暨2025潍坊风筝嘉年华活动现场,万千风

2025-04-19 22:26:00

纪黛宁傅谨怀:结局+番外免费品鉴(一场大梦一场空傅谨怀)全书在线无广告高口碑小说

随后开门,上车,关门,一气呵成。看着空落落的手,傅谨怀总感觉有什么东西在=正在逐渐失控,却又想不清楚到底是什么,他还想追问时,纪昭昭已经快步跑了过来。“老公,走吧!”他只得将那些话又重新咽了回去。刚走到墓地,怀里的手机忽然响起,傅谨怀看了一眼,便朝纪黛宁和纪昭昭两人指了指手机,让她们两人先去。纪黛宁

2025-04-19 21:51:17

特朗普"突袭"美日关税谈判 日本谈判代表懵了

据日本《产经新闻》18日报道,日本经济再生担当大臣、赴美谈判代表赤泽亮正对媒体透露,他是在飞往美国途中临时得知美国总统特朗普将亲自参与谈判,当时自己和其他日方官员都穿着睡衣。据日媒此前报道,赤泽亮正原计划于16日与美国财政部长贝森特就关税问题展开谈判,但特朗普却在16日突然发帖宣布自己也将参加会谈,

2025-04-19 21:51:00