77范文网 - 专业文章范例文档资料分享平台

Excel与VBA程序设计(mini)(6)

来源:网络收集 时间:2018-11-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

#006 color = icFirebrick #007 MsgBox color #008 End Sub

2.3.7. 变量的作用域(生存周期)

变量保留其值的这段时间,称为作用域或生存周期。变量的值可能在整个生存周期都 在改变,但它仍然保留着一些值。当变量失去了范围之后,它也就不再保存着任一个值。 当过程开始运行时,所有的变量都会被初始化。一个数值变量会初始化成 0,变长字 符串被初始化成零长度的字符串 (\,而定长字符串会被填满 ASCII 字符码0 所表示的 字符或是Chr(0)。Variant 变量会被初始化成Empty。用户定义类型中每一个元素变量会被 当成个别变量来做初始化。

当声明一个对象变量(详细介绍见后)时,内存中虽有保留空间,但它的值会被设置 成Nothing,直到利用Set 语句对它指定一个对象引用。

如果在代码的运行期间,变量的值一直没有改变,则它会继续保有它的初始值直到它 丢失范围为止。

Dim 语句声明过程的级别变量将保留一个值,直到此过程退出为止。如果该过程调用 其它的过程,则在这些过程正在运行的同时,属于调用者过程的变量也保留它的值。

2. VBA 简介 27

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

如果过程的级别变量是用 Static 关键字来声明的,则只要代码正在任何模块中运行此 变量仍会保留它的值。而当所有的代码都完成运行后,变量会失去它的范围和它的值。所 以它的存活期和模块级别的变量是一样的。

模块级别的变量与静态变量是不同的。在标准模块或类模块中变量会保留它的值,直 到停止运行代码。在对象类模块中,只要仍有一个属于此对象类的实例存在,则变量会一 直保留它的值。模块级别的变量会一直占用内存资源,直到重新设置它们的值,所以只有 在必要时才使用它们。

如果在 Sub 或Function 语句前加上Static 关键字,则在此过程中所有过程级别的变量 的值被保留在调用期间。

2.3.8. 字符串

字符串是 VBA 中需要经常处理的一种数据类型,有2 种字符串类型:变长字符串和 定长字符串。变长字符串理论上可以保存大约2G(231)字节的字符串,实际中其保存的 字符串长度由内存大小决定;而定长字符串可以保存大约65000(216)长度的字符串。 这 2 种字符串都可以使用Dim 语句来定义,定长字符串只需在其后加一个表示其长度 的数字即可。如: Dim MyString as StringDim Dim MyFixedString as String * 25

字符串定义后为空字符串,即没有任何数据的字符串(“”),可以通过以下方式对字符 串赋值。字符串在VBA 中用双引号表示。

MyString = \

MyFixedString = \MyEmptyString = \

定长字符串必须是其确定的长度,如果赋值时长度过长或过短,则自动以空格添满或 截断。

字符串的连接可以使用“&”或者“+”,不过不推荐使用后者,因为容易和数字运算 混淆。例如可以使用以下语句连接字符串。 MyString = “test”

MyString = MyString & “ Test Added” MyString = MyString + “ Added Still”

字符串处理的常用函数如表 2-6 所示,各函数的具体使用方法可参考VBA 的帮助文

2. VBA 简介 28

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

档。熟悉这些函数会有效的提高你的编程效率。 表 2-6 字符串操作函数索引

作用 关键字

比较两个字符串 StrComp 变换字符串 StrConv

大小写变换 Format, LCase, UCase 建立重复字符的字符串 Space, String 计算字符串长度 Len 设置字符串格式 Format 重排字符串 LSet, RSet

处理字符串 InStr, Left, LTrim, Mid, Right, RTrim, Trim 设置字符串比较规则 Option Compare

拆分和连接字符串 Split, Join (Office2000, VBA 6.0 以后提供) 运用 ASCII 与 ANSI 值 Asc, Chr 判断字符串是否为空

VBA 中,判断字符串是否为空可以使用STRNAME = “” 来判断,也可以使用 LEN(STRNAME) = 0 来判断,后者要比前者快 0.5 倍到1 倍,但实际上,后者从可 读性上不如前者,所以,如果判断语句是在一个大的循环内,应该尽量使用后者来判 断字符串是否为空,否则为了代码可读性也可以使用前者。

字符串处理中,经常需要做的一件事情就是将字符串格式化为特定的格式,例如格式 化为标准的长日期格式,保留2 位小数点的格式等等,VBA 中,可以使用Format 函数来 完成此项工作。Format 函数的语法为: Format(expression[,format])

其中expression 为任何有效的表达式,format 为要格式化的格式,例如可以如下使用 Format 函数:

Dim MyTime, MyDate, MyStr MyTime = #17:04:23# MyDate = #January 27, 1993#

'以系统设置的长时间格式返回当前系统时间。 MyStr = Format(Time, \

'以系统设置的长日期格式返回当前系统日期。 MyStr = Format(Date, \

2. VBA 简介 29

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

MyStr = Format(MyTime, \返回 \。

MyStr = Format(MyTime, \返回 \。 '如果没有指定格式,则返回字符串。 MyStr = Format(23) '返回 \。 '用户自定义的格式。

MyStr = Format(5459.4, \返回 \。 MyStr = Format(334.9, \返回 \。 MyStr = Format(5, \返回 \。 MyStr = Format(\返回 \。 MyStr = Format(\返回 \。

总之,使用Format 可以将字符串格式化为任何需要的格式,用好Format 函数可以在 实际开发中省却很多不必要的麻烦和工作,其具体格式化字符串(参数format)的说明请 参考VBA 的帮助文档。另外,Format 函数比一般的数据类型转换函数(如CStr)要慢1 到10 倍(根据格式的不同),因此,尽量不要频繁使用此函数,更不要滥用此函数。

2.3.9. 日期和时间

日期和时间可以存储在 Date 数据类型中,日期的范围是100-1-1 到9999-12-31,每天的

时间范围是0:00:00 到23:59:59。Date 数据类型可以同时保存日期和时间,也可以只在其中 保存时间或者日期。相对于字符串等方式保存日期和时间,应用Date 数据类型,可以在变 量之间进行日期运算。

给 Date 数据类型赋值时需要在时间和日期外使用“#”符号包括起来,VBA 基本上可 以识别常见的各种时间格式,但为防止引入错误,最好还是使用本机的时间和日期格式。 当给一个Date 类型的变量赋以一个不可识别的时间格式的时间或日期,会引发一个错误。 下面是一些使用Date 数据类型的例子: MyDate = #15 July 1999# StartDate = #April 8, 2001# MyTime = #8:47 PM#

StartingDateTime = #05/07/1992 15:56#

VBA 的代码编辑器会自动将你输入的日期更改为本机设置的日期格式。如果你输入的 年代不是按照4 位格式输入而是输入2 位,VBA 将此类时间识别为1930 年到2029 年,因 此,最好都按4 位格式输入年代。在处理日期和时间时,VBA 提供了以下函数(表 2-7)。 表 2-7 VBA 中的日期与时间函数

2. VBA 简介 30

Excel 与VBA 程序设计 Copyright ? 2005 马维峰 作用 关键字

设置当前日期或时间 Date ,Now, Time 计算日期DateAdd, DateDiff, DatePart 返回日期DateSerial, DateValue 返回时间TimeSerial, TimeValue 设置日期或时间Date, Time 计时Timer

2.4. VBA 语言基础

本部分将介绍在进行 VBA 程序设计时,需要熟悉的VBA 语法,包括流程控制语句, 最简单的用户交互,一些常用的函数,字符串操作等VBA 语言的基础内容。

2.4.1. 处理简单的用户输入输出

在程序设计时,经常需要进行用户交互,例如显示一条信息反馈给用户,需要用户输 入一些信息等。VBA 中,最简单的用户输入输出方法是使用MsgBox 函数和InputBox 函 数。我们在前面已经使用过这两个函数,下面我们将系统的学习一下这两个函数的使用方 法。

MsgBox 函数可以在用户屏幕显示一个对话框,等待用户点击,最后返回一个Integer 值,代表用户点击的按钮。MsgBox 的语法如下: MsgBox(prompt[, buttons] [, title] [, helpfile, context])

其中prompt 代表其显示的消息,之后的参数可以全部省略;buttons 表示对话框显示

的按钮和图标,title 表示其标题。例如以下代码片断: #001 Dim iReturn As Integer #002

#003 iReturn = MsgBox(\测试\标题\#004

#005 If iReturn = vbYes Then

#006 MsgBox \#007 Else

#008 MsgBox \#009 End If

第三行显示一个有询问图标,有Yes 和No 按钮(是和否)的对话框,单击后根据返 回值判断,告诉你点击了那个按钮。

2. VBA 简介 31

Excel 与VBA 程序设计 Copyright ? 2005 马维峰

InputBox 可以在用户屏幕显示一个对话框,对话框包括一个提示和用户输入文本框,

等待用户输入正文或按下按钮,并返回包含文本框内容的字符串(String 类型)。InputBox 的语法如下:

InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

其中各关键字与MsgBox 重复的在此不再重复。其中default 表示对话框中缺省文字内 容,xpos 和ypos 表示对话框距屏幕左上角的距离,省略则对话框居中。如果用户单击OK 或按下Enter 键,则InputBox 函数返回文本框中的内容。如果用户单击 Cancel,则此函数 返回一个长度为零的字符串 (\。

如果在 MsgBox 和InputBox 中同时提供了helpfile 与context,用户可以按F1 (Windows) 来查看与context 相应的帮助主题。某些主应用程序,如Microsoft Excel,会在对话框中自 动添加一个Help 按钮。

2.4.2. 控制程序流程

VBA 程序代码的流程同其他程序设计语言一样,有顺序语句:从上到下,由程序的第 一行执行到最后一行;判断分支语句:根据条件跳过部分语句,执行另一部分;循环语句: 循环执行一段语句。

2.4.3. 条件语句

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Excel与VBA程序设计(mini)(6)在线全文阅读。

Excel与VBA程序设计(mini)(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/310399.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: