VBA三种流程学习_第1页
VBA三种流程学习_第2页
VBA三种流程学习_第3页
VBA三种流程学习_第4页
VBA三种流程学习_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要VBA编程由一系列的代码组成,这些代码将按照一定的顺序执行。有时程序根据一定的条件只能执行某一部分代码,有时需要重复执行某一段代码。通过程序结构控制代码来完成这些功能。关键词:编程, 代码 程序结构1  三种程序结构介绍结构化程序设计中使用的基本控制结构有3种:顺序结构、选择结构和循环结构。顺序结构就是按照语句的书写顺序从上到下、逐条语句地执行。执行时,编写在前面的代码先执行,编写在后面的代码后执行。这是最普遍的结构形式,也是后面两种结构的基础。顺序结构不需要使用结构控制语句,本节介绍常用的输入输出语句的技巧。1.1.1 九九乘法表(Debug方法的应用)在VBA中,Print方

2、法只能应用于Debug对象,其语法格式如下:Debug.Print outputlist参数outputlist是要打印的表达式或表达式的列表。如果省略,则打印一个空白行。(1)在VBE中,单击菜单“插入/模块”命令插入一个模块。(2)在模块中输入以下代码:Sub 九九乘法表()    For i = 1 To 9        For j = 1 To i            Deb

3、ug.Print i; "x" j; "=" i * j; "  "        Next        Debug.Print        '换行    NextEnd Sub(3)按功能键“F5”运行子过程,在“立即窗口”输出九九乘法表 。1.1.2 输入个人信息(Inpu

4、tbox函数的应用)为了实现数据输入,VBA提供了InputBox函数。该函数将打开一个对话框作为输入数据的界面,等待用户输入数据,并返回所输入的内容。其语法格式如下:InputBox(prompt, title , default , xpos , ypos , helpfile, context) 各参数的含义如下:    Prompt:为对话框消息出现的字符串表达式。其最大长度为1024个字符。如果需要在对话框中显示多行数据,则可在各行之间用回车符换行符来分隔,一般使用VBA的常数vbCrLf代表回车换行符。    Title:

5、为对话框标题栏中的字符串。如果省略该参数,则把应用程序名放入标题栏中。    Default:为显示在文本框中的字符串。如果省略该参数,则文本框为空。    Xpos:应和Ypos成对出现,指定对话框的左边与屏幕左边的水平距离。如果省略该参数,则对话框会在水平方向居中。    Ypos:应和Xpos成对出现,指定对话框的上边与屏幕上边的距离。如果省略该参数,则对话框被放置在屏幕垂直方向距下边大约三分之一的位置。    Helpfile:设置对话框的帮助文件,可省略。 

6、;   Context:设置对话框的帮助主题编号,可省略。(1)在VBE中,单击菜单“插入/模块”命令插入一个模块。(2)在模块中输入以下代码:Sub inputinfo()    Title = "输入个人信息"    name1 = "请输入姓名:"    age1 = "请输入年龄:"    address1 = "请输入地址:"    st

7、rName = InputBox(name1, Title)    age = InputBox(age1, Title)    Address = InputBox(addres1, Title)    Debug.Print "姓名:" strName    Debug.Print "年龄:" age    Debug.Print "地址:" AddressEnd Sub(3)按功能

8、键“F5”运行子过程,将弹出“输入个人信息”窗口,在对话框中输入内容后按“回车”,或单击“确定”按钮。(4)接着输入“年龄”和“地址”信息,在“立即窗口”中将输出这些内容,                        1.1.3 退出确认(Msgbox函数的应用)使用MsgBox函数可打开一个对话框,在对话框中显示一个提示信息,并让用户单击对话框中的按钮,使程序继续执行。MsgBox函

9、数语法格式如下:Value=MsgBox(prompt,buttons,title ,helpfile,context)通过函数返回值可获得用户单击的按钮,并可根据按钮的不同而选择不同的程序段来执行。(1)在VBE中,单击菜单“插入/模块”命令插入一个模块。(2)在模块中输入以下代码:Sub 提示符() x = MsgBox("欢迎来到VB世界", vbOKOnly, "学习VBA")End Sub1.2.1  分支结构(从身份证号码中提取性别)分支结构,又叫选择结构。这种结构的程序将根据给定的条件来决定执行哪一部分代码,而跳过其他代码。其语法

10、格式如下:If 逻辑表达式 Then   语句1  Elseif 逻辑表达式 then语句1      Else语句nEnd If(1)随便在sheet1中单元格A1:A10输入分数(2)按快捷键“Alt+F11”进入VBE环境。(3)单击菜单“插入/模块”命令向工程中插入一个模块,并编写以下代码:Sub 显示不合格分数()Dim i As IntegerFor i = 2 To 11 If Sheet1.Cells(i, 1).Value < 60 Then Sheet1.Cells(i, 1).Selec

11、t Selection.Font.FontStyle = "加粗" Selection.Font.ColorIndex = 3 End IfNext iEnd Sub在很多信息系统中都需要使用到身份证号码,身份证号码中包含有很多信息,如可从其中提取性别。我国现行使用的身份证号码有两种编码规则,即15位居民身份证和18位居民身份证。15位的身份证号的编码规则。dddddd yymmdd xx p18位的身份证号的编码规则。dddddd yyyymmdd xx p y其中:    dddddd为地址码(省地县三级)18位中的和15位中的不完全相同。

12、    yyyymmdd yymmdd 为出生年月日。    xx序号类编码。    p性别。    18位中末尾的y为校验码。(1)新建Excel工作簿,在VBE中插入一个模块。(2)在模块中编写以下代码:Sub 根据身份证辨别男女()100:x = InputBox("请输入你的身份证号:")L = Len(x)If L <> 15 And L <> 18 Then MsgBox ("你输入的身份证有误")

13、GoTo 100 ElseIf L = 15 Then s = Right(x, 1) Else s = Mid(x, 17, 1) End If If s Mod 2 = 0 Then 'mod 为取余 a = MsgBox("性别:女", , "性别提示") Else a = MsgBox("性别:男", , "性别提示")End IfEnd Sub 1.3  循环结构在实际开发的应用系统中,经常需要重复执行一条或多条语句。这种结构称为循环结构。循环结构的思想是利用计算机高速处理运算的特性,重

14、复执行某一部分代码,以完成大量有规则的重复性运算。VBA提供了多个循环结构控制语句:DoLoopwhile结构、do Whileloop结构、ForNext结构、For EachNext结构。1.3.1密码验证(Do .Loop while循环介绍)在VBA中,循环语句:DoLoop whiel循环的语法格式如下:Do     语句序列1    Exit Do    循环体Loop while 条件成立循环(1)新建Excel工作簿,按快捷键“Alt+F11”进入VBE开发环境。(2)单击菜单“插入/模块

15、”命令向工程中插入一个模块。(3)在模块中编写以下VBA代码:Sub 登录密码验证()Dim pass, i, si = 0Do pass = InputBox("请输入密码", "登录界面") If pass = "123456" Then s = MsgBox("登录成功", vbDefaultButton1, "欢迎界面") Exit Do End If i = i + 1 MsgBox ("忘记密码了吧!还有" & (3 - i) & "机会

16、") Loop While i < 3End sub1.3.2  求最小公倍数和最大公约数(do loop循环)公倍数:两个数或多个数的倍数,最小公倍数即公倍数中的最小值,最大公约数:即最大约数(必须为素数) 如10的最大公约数为5,而7的最大公约数为7最小公倍数举例:如 10 ,14的最小公倍数为70 解释: 10=2*5 14=2*7(注意必须拆分到素数),即 素数为2,5,7,即最大公约数=2*5*7=70 最小公倍数举例:如 10 ,14的最小公倍数为70结论 :两个数的最小公倍数*两个数中的最大公约数=两个数相乘(1)新建Excel工作簿,按快捷键“Alt+

17、F11”进入VBE环境。(2)单击菜单“插入/模块”命令向工程中插入一个模块。(3)在模块中编写以下子过程:Sub 最小公倍数和最大公约数()    Dim m As Integer, n As Integer    Dim m1 As Integer, n1 As Integer    Dim t As Integer    m = InputBox("输入自然数m:")    n = InputBox("输入自然

18、数n:")    m1 = m    n1 = n    If m1 < n1 Then        m1 = n        n1 = m '交换m和n的值    End If    Do        r =

19、 m1 Mod n1        If r = 0 Then Exit Do        m1 = n1        n1 = r    Loop    str1 = m & "," & n & "的最大公约数=" & n1 & vbCrLf&

20、#160;   str1 = str1 & "最小公倍数=" & m * n / n1    MsgBox str1End Sub1.3.3  输出ASCII码表(for next)使用DoLoop循环时,可以不知道循环的具体次数。如果知道循环的次数,可以使用ForNext循环语句来执行循环。For循环的语法如下:For 循环变量=初始值 To 终值 Step 步长值    语句序列1     Exit For 

21、0;  语句序列2Next 循环变量For循环一般都可计算出循环体的执行次数,计算公式如下:循环次数=(终值-初值)/步长值+1这里用中括号表示取整。在事先不知道循环体需要执行多少次时,应该用Do循环。而在知道循环体要执行的次数时,最好使用ForNext循环。(1)新建Excel工作簿,按快捷键“Alt+F11”进入VBE环境。(2)单击菜单“插入/模块”命令向工程中插入一个模块。(3)在模块中编写以下子过程:Sub ascii输出()Dim a As Integer, i As Integeri = 1For a = 1 To 126 Step 1Sheet1.Cells(i, 2) = aSheet1.Cells(i, 3) = Chr(a)i = i + 1Next

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论