没有合适的资源?快使用搜索试试~ 我知道了~
首页VBA实战:43个Excel功能实例详解
VBA实战:43个Excel功能实例详解
需积分: 42 144 下载量 182 浏览量
更新于2023-03-16
13
收藏 312KB DOC 举报
在"43个典型Excel VBA实例"中,第一个实例是关于九九乘法表的制作与Print方法的应用。尽管在基础的Basic版本中,Print语句曾用于在终端输出结果,但在Excel VBA环境中,Print方法的功能有所限制。在VBA中,Print方法主要用于Debug对象,它允许开发人员在调试过程中查看程序的中间结果,而非直接在工作表或用户界面上显示。 实例1利用Debug.Print方法实现九九乘法表的创建。关键技术在于理解Debug对象的使用,以及如何编写合适的表达式来显示乘法表的每一项。例如,你可以通过循环结构遍历1到9的乘积,并将其作为参数传递给Debug.Print,如`Debug.Print i & " * " & j & " = " & i * j`。这种方法不会直接在工作表上看到结果,但对理解和调试VBA代码非常有帮助。 这个实例展示了VBA编程中的控制结构和变量操作,让读者能够实践如何在编程环境中控制输出流程,这对于理解VBA在Excel中的底层逻辑和工作方式非常重要。后续的42个实例涵盖了一系列实用功能,如数据输入、处理、查找、排序、筛选等,都是Excel VBA编程中的常见应用场景,旨在提升用户的自动化工作效率和数据分析能力。每个实例都详细介绍了所需的技术原理、语法和实现步骤,适合Excel用户深入学习和实践VBA编程。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/10488343/bgb.jpg)
Case Is <= 20000
curT = (curP - 5000) * 0.2 + 375
Case Is <= 40000
curT = (curP - 20000) * 0.25 + 1375
Case Is < 60000
curT = (curP - 40000) * 0.3 + 3375
Case Is < 80000
curT = (curP - 60000) * 0.35 + 6375
Case Is < 100000
curT = (curP - 80000) * 0.4 + 10375
Case Else
curT = (curP - 100000) * 0.45 + 15375
End Select
个人所得税
= curT
Else
个人所得税
= 0
End If
End Function
(
5
)在模块中编写“计算”子过程,计算工资表中每个员工应缴所得税额,并填写在对
应的列中。
Sub
计算
()
For i = 4 To 9
Sheets(1).Cells(i, 8).Value =
个人所得税
(Sheets(1).Cells(i, 6).Value)
Next
End Sub
(
6
)返回到
Excel
环境中,在工资表下方插入一个按钮,为按钮指定宏为“计算”。
(
7
)单击“计算”按钮,可计算出每个员工的所得税额。
在实际开发的应用系统中,经常需要重复执行一条或多条语句。这种结构称为循环结构。
循环结构的思想是利用计算机高速处理运算的特性,重复执行某一部分代码,以完成大量
有规则的重复性运算。
VBA
提供了多个循环结构控制语句:
Do
…
Loop
结构、
While
…
Wend
结构、
For
…
Next
结构、
For Each
…
Next
结构。
例 8 密码验证
1
.案例说明
在信息管理系统中,很多时候都需要用户进行登录操作。在登录操作时要求用户输入
密码,一般都要给用户三次机会,每次的输入过程和判断过程都相同。
本例使用
Do
…
Loop
循环完成密码验证过程。
![](https://csdnimg.cn/release/download_crawler_static/10488343/bgc.jpg)
2
.关键技术
在
VBA
中,最常用的循环语句是
Do…Loop
循环。循环结构
Do While…Loop
的语法
格式如下:
Do While
逻辑表达式
语句序列
1
[Exit Do]
[
语句序列
2]
Loop
其中
Do While
和
Loop
为关键字,在
Do While
和
Loop
之间的语句称为循环体。
当
VBA
执行这个
Do
循环时,首先判断“逻辑表达式”的值,如果为
False
(或零),则
跳过所有语句,执行
Loop
的下一条语句,如果为
True
(或非零),则执行循环体,当执
行到
Loop
语句后,又跳回到
Do While
语句再次判断条件。在循环体中如果包含有
Exit Do
语句,当执行到
Exit Do
语句,马上跳出循环,执行
Loop
的下一条语句。其流程图如图
3-
22
所示。
Do While…Loop
流程图
VBA
的
Do
…
Loop
循环有
4
种结构,分别如下:
— Do While…Loop
循环:先测试条件,如果条件成立则执行循环体。
— Do…Loop While
循环:先执行一遍循环体,再测试循环条件,如果条件成立则执
行循环体。
— Do Until…Loop
循环:先测试条件,如果条件不成立则执行循环体。
— Do…Loop Until
循环:先执行一遍循环体,再测试循环条件,如果条件不成立则
执行循环体。
3
.编写代码
(
1
)新建
Excel
工作簿,按快捷键“
Alt+F11
”
进入
VBE
开发环境。
(
2
)单击菜单“插入
/
模块”命令向工程中插入一个模块。
(
3
)在模块中编写以下
VBA
代码:
Sub login()
Dim strPassword As String '
保存密码
Dim i As Integer '
输入密码的次数
Do
strPassword = InputBox("
请输入密码
") '
输入密码
If strPassword = "test" Then '
判断密码是否正确
Exit Do '
退出循环
Else
MsgBox ("
请输入正确的密码!
")
![](https://csdnimg.cn/release/download_crawler_static/10488343/bgd.jpg)
End If
i = i + 1
Loop While i < 3
If i >= 3 Then '
超过正常输入密码次数
MsgBox "
非法用户,系统将退出!
"
Application.Quit
Else
MsgBox "
欢迎你使用本系统!
"
End If
End Sub
(
4
)返回
Excel
操作界面,在工作表中插入一个按钮,设置提示文字为“密码验证”,
并为该按钮指定执行的宏为“
login”
。
(
5
)单击“密码验证”按钮,弹出对话框,输入密码后单击“确定”按钮进行密码的验证。
例 9 求最小公倍数和最大公约数
1
.案例说明
几个数公有的倍数叫做这几个数的公倍数,其中最小的一个叫做这几个数的最小公倍
数。如
12
、
18
、
20
这三个数的最小公倍数为
180
。
最大公约数是指某几个整数的共有公约数中最大的那个数。如
2
、
4
、
6
这三个数的最
大公约数为
2
。
本例使用辗转相除法求两个自然数
m
、
n
的最大公约数和最小公倍数。
2
.关键技术
本例首先求出两数
m
、
n
的最大公约数,再将
m
、
n
数的乘积除以最大公约数,即可得
到最小公倍数。
本例使用
Do…Loop
循环,并且没有设置循环条件。一般情况下,这种循环是一个死
循环(也就是说程序将一直循环下去),因此,在这种循环结构中必须添加一个判断语句,
当达到指定的条件时退出循环。如本例中使用以下语句退出循环:
If r = 0 Then Exit Do
3
.编写代码
(
1
)新建
Excel
工作簿,按快捷键“
Alt+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
:
")
剩余60页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/3f89b8dacf1948cb8b1256da468a134c_weixin_42495453.jpg!1)
weixin_42495453
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 计算机系统基石:深度解析与优化秘籍
- 《ThinkingInJava》中文版:经典Java学习宝典
- 《世界是平的》新版:全球化进程加速与教育挑战
- 编程珠玑:程序员的基础与深度探索
- C# 语言规范4.0详解
- Java编程:兔子繁殖与素数、水仙花数问题探索
- Oracle内存结构详解:SGA与PGA
- Java编程中的经典算法解析
- Logback日志管理系统:从入门到精通
- Maven一站式构建与配置教程:从入门到私服搭建
- Linux TCP/IP网络编程基础与实践
- 《CLR via C# 第3版》- 中文译稿,深度探索.NET框架
- Oracle10gR2 RAC在RedHat上的安装指南
- 微信技术总监解密:从架构设计到敏捷开发
- 民用航空专业英汉对照词典:全面指导航空教学与工作
- Rexroth HVE & HVR 2nd Gen. Power Supply Units应用手册:DIAX04选择与安装指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)