...wd...43个典型ExcelVBA实例目录例1.九九乘法表〔Print方法的应用〕 3例2 输入个人信息〔Inputbox函数的应用〕 3例3 退出确认〔Msgbox函数的应用〕 5例4 突出显示不及格学生 7例5 从身份证号码中提取性别 8例6 评定成绩等级 9例7 计算个人所得税 11例8 密码验证 13例9 求最小公倍数和最大公约数 15例10 输出ASCII码表 16例11 计算选中区域数值之和 17例12 换零人民币法〔多重循环〕 18例13 数据排序 21例14 彩票幸运号码 22例15 用数组填充单元格区域 24例16 判断单元格是否包含公式 25例17 自动填充公式 26例18 锁定和隐藏公式 28例19 将单元格公式转换为数值 29例20 删除所有公式 29例21 用VBA表示数组公式 30数据查询 31例22 查找指定的值 31例23 带格式查找 33例24 查找上一个/下一个数据 34例25 代码转换 36例26 模糊查询 37例27 网上查询快件信息 38例28 查询基金信息 40例29 查询所在地 41例30 使用字典查询 43数据排序 45例31 用VBA代码排序 45例32 乱序排序 46例33 自定义序列排序 47例34 多关键字排序 49例35 输入数据自动排序 50例36 数组排序 51例37 使用Small和Large函数排序 52例38 使用RANK函数排序 54例39 姓名按笔画排序 56例40 用VBA进展简单筛选 59例41 用VBA进展高级筛选 61例42 筛选非重复值 62例43 取消筛选 63:例1.九九乘法表〔Print方法的应用〕1. 案例说明在早期的Basic版本中,程序运行结果主要依靠Print语句输出到终端。
在VB中,Print作为窗体的一个方法,用来在窗体中显示信息但是在VBA中,用户窗体已经不支持Print方法了在VBA中,Print方法只能向“立即窗口〞中输出程序的运行中间结果,供开发人员调试程序时使用本例使用Print方法在立即窗口中输入九九乘法表2. 关键技术在VBA中,Print方法只能应用于Debug对象,其语法格式如下:Debug.Print [outputlist]参数outputlist是要打印的表达式或表达式的列表如果省略,则打印一个空白行— Print首先计算表达式的值,然后输出计算的结果在outputlist参数中还可以使用分隔符,以格式化输出的数据格式化分隔符有以下几种:— Spc(n):插入n个空格到输出数据之间;— Tab(n):移动光标到适当位置,n为移动的列数;— 分号:表示前后两个数据项连在一起输出;— 逗号:以14个字符为一个输出区,每个数据输出到对应的输出区3.编写代码〔1〕在VBE中,单击菜单“插入/模块〞命令插入一个模块〔2〕在模块中输入以下代码:Sub multi() For i = 1 To 9 For j = 1 To i Debug.Print i; "x"; j; "="; i * j; " "; Next Debug.Print NextEnd Sub〔3〕按功能键“F5〞运行子过程,在“立即窗口〞输出九九乘法表,如图3-1所示。
例2 输入个人信息〔Inputbox函数的应用〕1.案例说明本例演示Inputbox函数的使用方法执行程序,将弹出“输入个人信息〞对话框,要求用户输入“姓名、年龄、地址〞信息,然后在“立即窗口〞中将这些信息打印输出2.关键技术为了实现数据输入,VBA提供了InputBox函数该函数将翻开一个对话框作为输入数据的界面,等待用户输入数据,并返回所输入的内容其语法格式如下:InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context]) 各参数的含义如下:— Prompt:为对话框消息出现的字符串表达式其最大长度为1024个字符如果需要在对话框中显示多行数据,则可在各行之间用回车符换行符来分隔,一般使用VBA的常数vbCrLf代表回车换行符— Title:为对话框标题栏中的字符串如果省略该参数,则把应用程序名放入标题栏中— Default:为显示在文本框中的字符串如果省略该参数,则文本框为空— Xpos:应和Ypos成对出现,指定对话框的左边与屏幕左边的水平距离如果省略该参数,则对话框会在水平方向居中。
— Ypos:应和Xpos成对出现,指定对话框的上边与屏幕上边的距离如果省略该参数,则对话框被放置在屏幕垂直方向距下边大约三分之一的位置— Helpfile:设置对话框的帮助文件,可省略— Context:设置对话框的帮助主题编号,可省略3.编写代码〔1〕在VBE中,单击菜单“插入/模块〞命令插入一个模块〔2〕在模块中输入以下代码:Sub inputinfo() Title = "输入个人信息" name1 = "请输入姓名:" age1 = "请输入年龄:" address1 = "请输入地址:" strName = InputBox(name1, Title) age = InputBox(age1, Title) Address = InputBox(addres1, Title) Debug.Print "姓名:"; strName Debug.Print "年龄:"; age Debug.Print "地址:"; AddressEnd Sub〔3〕按功能键“F5〞运行子过程,将弹出“输入个人信息〞窗口。
在对话框中输入内容后按“回车〞,或单击“确定〞按钮〔4〕接着输入“年龄〞和“地址〞信息,在“立即窗口〞中将输出这些内容例3 退出确认〔Msgbox函数的应用〕1.案例说明在应用程序中,有时用户会由于误操作关闭Excel,为了防止这种情况,可在退出Excel之前弹出对话框,让用户确认是否真的要关闭Excel本例使用Msgbox函数弹出对话框,让用户选择是否退出系统2.关键技术使用MsgBox函数可翻开一个对话框,在对话框中显示一个提示信息,并让用户单击对话框中的按钮,使程序继续执行MsgBox函数语法格式如下:Value=MsgBox(prompt[,buttons][,title][ ,helpfile,context])通过函数返回值可获得用户单击的按钮,并可根据按钮的不同而选择不同的程序段来执行该函数共有5个参数,除第1个参数外,其余参数都可省略各参数的意义与Inputbox函数参数的意义 根本一样,不同的地方是多了一个buttons参数,用来指定显示按钮的数目及形式、使用提示图标样式、默认按钮以及消息框的强制响应等其常数值如表3-1所示表3-1 按钮常数值常 量值说 明vbOkOnly0只显示“确定〞〔Ok〕按钮vbOkCancel1显示“确定〞〔Ok〕及“取消〞〔Cancel〕按钮vbAbortRetryIgnore2显示“异常终止〞〔Abort〕、“重试〞〔Retry〕及“忽略〞〔Ignore〕按钮vbYesNoCancel3显示“是〞〔Yes〕、“否〞〔No〕及“取消〞〔Cancel〕按钮续表 常 量值说 明vbYesNo4显示“是〞〔Yes〕及“否〞〔No〕按钮vbRetryCancel5显示“重试〞〔Retry〕及“取消〞〔Cancel〕按钮vbCritical16显示Critical Message图标vbQuestion32显示Warning Query图标vbExclamation48显示Warning Message图标vbInformation64显示Information Message图标vbDefaultButton10以第一个按钮为默认按钮vbDefaultButton2256以第二个按钮为默认按钮vbDefaultButton3512以第三个按钮为默认按钮vbDefaultButton4768以第四个按钮为默认按钮vbApplicationModal0进入该消息框,当前应用程序暂停vbSystemModal4096进入该消息框,所有应用程序暂停表3-1中的数值〔或常数〕可分为四组,其作用分别为:— 第一组值〔0~5〕用来决定对话框中按钮的类型与数量。
— 第二组值〔16,32,48,64〕用来决定对话框中显示的图标— 第三组值〔0,256,512〕设置对话框的默认活动按钮活动按钮中文字的周转有虚线,按回车键可执行该按钮的单击事件代码— 第四组值〔0,4096〕决定消息框的强制响应性buttons参数可由上面4组数值组成,其组成原则是:从每一类中选择一个值,把这几个值累加在一起就是buttons参数的值〔大局部时间里都只使用前三组数值的组合〕,不同的组合可得到不同的结果3.编写代码〔1〕在VBE中,双击“工程〞子窗口中的“ThisWorkbook〞翻开代码窗口,如图3-4所示〔2〕在代码窗口左上方的对象列表中选择“Workbook〞,如图3-5所示〔3〕在代码窗口右上方的事件列表中选择“BeforeClose〞,如图3-6所示代码窗口中将自动生成事件过程构造如下: Private Sub Workbook_BeforeClose(Cancel As Boolean)End Sub〔4〕在上面生成的事件过程中输入以下代码:Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim intReturn As Integer intReturn = MsgBox("真的退出系统吗", vbYesNo + vbQuestion, "提示") If intReturn <> vbYes Then Cancel = TrueEnd Sub〔5〕保存Excel工作簿。
〔6〕关闭Excel工作簿分支构造,又叫选择构造这种构造的程序将根据给定的条件来决定执行哪一局部代码,而跳过其他代码例4 突出显示不及格学生1.案例说明本例判断学生成绩表中的成绩,如果成绩不及格〔低于60分〕,则将该成绩着重显示出来2.关键技术在本例中,需要进展一个判断〔成绩是否低于60分〕,这时可使用If…Then语句用If…Then语句可有条件地执行一个或多个语句其语法格式如下:If 逻辑表达式 Then 。