




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【VBA教材】4.数据类型与变量、常量的概念贡献者: 在VBA中,使用最频繁的是变量与常量,而只要出现变量、常量,随之而来的数据类型也是程序员需要深入理解的一个知识点 第七、八课对变量、常量与数据类型做简要地介绍,在后续的章节时,读者还可以通过大量的实例来加深读者在变量与数据类型的理解。 4.1变量 4.1.1变量的概念 变量是指在程序的运行过程中随时可以发生变化的量。我们可以对它赋值,甚至可以多次对同一变量赋值。 变量是程序中数据的临时存放场所。在代码中可以只使用一个变量,也可以使用多个变量。变量中可以存放单词、数值、日期以及属性。由于变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此它们十分有用。 变量可以保存程序运行时用户输入的数据(如使用InputBox函数在屏幕上显示一个对话框,然后把用户键入的文本保存到变量中)、特定运算的结果以及要在窗体上显示的一段数据等。简而言之,变量是用于跟踪几乎所有类型信息的简单工具。 例如以下程序就使用了四个变量,每个变量在程序中改赋值一次,其中,前三个变量限定了其范围,最后一个未限制。程序在最后将结果输出到立即窗口。 _ Sub 三角形() Dim a As Integer, b As Integer, c As Integer, 周长 a = 10 b = 20 c = 15 周长 = a + b + c Debug.Print 周长 End Sub _ 再看一个实例,过程“求和”中包括两个变量,每个变量的值改变10次,最后将变量a的值输出到立即窗口。 _ Sub 求和() Dim a As Long, cell As Range For Each cell In Range(A1:A10) a = a + cell Next cell Debug.Print a End Sub _ 变量相当于Excel工作表中使用公式时建立的辅助区,只不过它是将值存在内存中,供用户随时调用。 4.1.2变量的优点 在VBA中,变量主要有三个用途: l简化代码 假设某个对象或者表达式在一个Sub过程或者多个Sub过程中多次出现,而该表达式或者对象的代码很长,那么可以定义一个更短且有意义的名称来取代它。例如以下两个过程,A过程直接引用对象,B过程使用了变量: _ Sub A() 直接引用对象 If ThisWorkbook.Sheets(3).Range(A5).Value 90 Then ThisWorkbook.Sheets(3).Range(A5).Offset(0, 1) = 优秀 Else ThisWorkbook.Sheets(3).Range(A5).Offset(0, 1) = 及格 End If End Sub _ Sub B() 用变量取代对象 Dim rng 声明一个变量 Set rng = ThisWorkbook.Sheets(3).Range(A5) 将对象赋与变量 If rng 90 Then rng.Offset(0, 1) = 优秀 Else rng.Offset(0, 1) = 及格 End If End Sub _ 从以上两个过程比较,变量对于简化代码有着举足轻重的作用。 l提高速度 变量是将值存入内存中,而VBA读取任何对象的属性值或者计算一个表达式的速度都会远远长于读取内存中数据的时间。正是基于这个特点,当某个对象来表达式多次出现时,尽量使用变量来完成。 假设表达式“Cells(2, 1) * Cells(2, 1) * Cells(2, 1)”表要在某过程中出现100次,那么它会进行100次三个单元格的乘法运算。如果使用变量代替该表达式,那么在过程中仅仅在对变量赋值时计算一次,以后的100次调用,都不再需要计算,而是直接获取变量的值。 l循环执行 在循环语句中必须使用变量,否则无法执行。而循环语句是VBA的各种语句中使用率最高的语句。 4.2常量 4.2.1常量的概念 常量也称常数,是执行程序时保持常数值、永远不变的命名项目。常数可以是字符串、数值、算术运算符或逻辑运算符的组合。 VBA中有很多预定义的常量,例如:“vbYesNo”、“vbSunday”、“vbSunday”等等,用户也可以 通过Const 语句定义附加常数。可在代码中的任何地方使用常数代替实际的值。 4.2.2常量的用途 常量的主要用于取一个固定不变的值,再参与过程。在两种情况下可以使用常量: l某个值多次出现 在过程中,如果某个值多次出现,那么可以使用常量来取代该值参与运算,它的优点是方便编辑、修改。 例如某值为12345678在一个过程或者多个过程中分别出现20次,如果用户需要修改这个值为87654321时,需要修改20次。但是如果使用常量来取代它,只需要对常量的赋值语句修改一次即可,从而提升工作效率,也提升了准确度。 l某个值较长,不便于输入或者记忆 如果一个数值在过程中出现多次,且该值较长,如3.1415926,那么可以利用常量A或者Pi等等字符来取代它,以后录入代码时只需要录入A或者Pi,而不是3.1415926. 可见使用常量可以让代码的输入效率更高,同时也会提升准确度。 4.3数据类型 数据类型就是一类数据的集合。它决定变量或者常的占用空间及种类。 在程序中使用什么样的数据类型要根据实际情况而定,既不要浪费存储空间有不要丢失数据。例如变量的值需要在1-100之间变量,就要用BYTE,而不用long型,BYTE可以使程序占用的空间更小,运算速度更快。数据使类型掌握不好,可以导致两种结果:程序出错、效率很差。 4.3.1从实例看变量与数据类型 实例,计算a1:a10中的数据和及空白单元格个数 _ Sub TEST() Dim SUMS As Long, CELL As Range, I As Byte, 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 _ 本程序中使用了四个变量,而四个变量分别有这种类型,见表7-1所示:表7-1变量及其类型变量数据类型SumsLongCellRangeIByteMystrString其中 Long(长整型)变量存储为 32 位(4 个字节)有符号的数值形式,其范围从 -2,147,483,648 到 2,147,483,647。Long 的类型声明字符为和号 (&)。 Range表示当前变量是单元格对象; Byte表示当前表只能在0-255之间变化;Byte 变量存储为单精度型、无符号整型、8 位(1个字节)的数值形式。 String字符串有两种:变长与定长的字符串。 变长字符串最多可包含大约 20 亿 ( 231)个字符。 定长字符串可包含 1 到大约 64K ( 216 ) 个字符。 假设工作表数据如图1-1所示,则该过程运算结果见图1-2所示。 图7-1 工作表数据 图7-2 运算结果4.4VBA数据类型说明及其标识符 在编写VBA程序并声明变量时,用户可以指定其数据类型,也可以不指定数据类型。如果用户不指定数据类型则VBA会默认将其看成变体型Variant,而在行殊情况下根据实现需要还可以自动转换成相应的其它数据类型 然后让VBA自己转换数据类型会使过程的执行更低,也就是利用慢速度换顾取方便,这对于一个程序员来说是不可取的。 在编写程序时,应该根据需要强制指定一种数据类型。以下是Excel 中变量的类型及其标识符。 数据类型类型标识符数据范围占用字节数字符串型 String$变长字符串最多可包含大约 20 亿 ( 231)个字符:定长字符串可包含 1 到大约 64K ( 216 ) 个字符。 字节型 Byte无正整型 0255 。1字节布尔型 Boolean无True(-1) 或 False(0)2字节 整数型 Integer%从-32,768 到 32,767 之间的数字,小数部分四舍五入。2字节长整数型 Long&从 -2,147,483,648 到 2,147,483,647。4字节单精度型 Single!对于负数,其范围为 -3.402823E38 到 -1.401298E-45;对于正数,其范围为 1.401298E-45 到 3.402823E38。4字节双精度型 Double#对于负数,其范围为 -1.79769313486231E308 到 -4.94065645841247E-324;对于正数,其范围为 4.94065645841247E-324 到 1.79769313486232E308。8字节日期型 Date无日期范围从 100 年 1 月 1 日到 9999 年 12 月 31 日;而时间可以从 0:00:00 到 23:59:59。8字节货币型 Currency从 -922,337,203,685,474.5808 到 922,337,203,685,474.5807。8字节小数点型 Decimal无对于没有小数点的数字,其范围是 +/-79,228,162,514,264,337,593,543,95
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能包装技术如何赋能小香皂防污染与防二次污染双重防护
- 2025年美术剪纸考试题目及答案
- 智能别墅系统中的隐私边界与数据主权重构
- 智能传感器的精度阈值与节水效能的动态平衡机制研究
- 新能源电池溶剂体系适配性缺陷引发的产业链价值链重构思考
- 新型非极性溶剂体系对硫氮茂晶体结构定向合成的促进作用
- 新型纳米改性刚玉衬里材料抗热震性能提升的界面工程策略
- 新型永磁体替代方案对螺管电磁铁磁场分布的颠覆性影响
- 政策驱动下跨国药企供应链重构对该化合物市场定价机制的冲击分析
- 改性技术迭代与成本控制失衡的博弈关系探析
- 第3章 Word 2016文字处理软件
- 出入库管理表格
- 项目2 植物生长的土壤环境调控
- 工业机器人的发展现状和未来趋势
- 公司司库管理系统执行管理办法
- 密歇根九级综合复习题
- 22J603-1 铝合金门窗1正式版
- 新企业会计准则讲解
- 供货方案及保证措施供货服务方案
- 2023年人教版初中英语八年级Unit 4 教案
- CQI-8分层过程审核
评论
0/150
提交评论