没有合适的资源?快使用搜索试试~ 我知道了~
Excel_VBA经典教程(共2份)第2份.pdf
4星 · 超过85%的资源 需积分: 9 10 下载量 47 浏览量
2010-10-28
19:43:30
上传
评论
收藏 4.98MB PDF 举报
温馨提示
试读
100页
Excel_VBA经典教程(共2份)第2份.pdf Excel_VBA经典教程(共2份)第2份.pdf
资源推荐
资源详情
资源评论
第15学时 实现用户窗体的自动功能
实现用户窗体的自动功能可以分为几个部分:首先必须确定窗体在装载时的外观,其次
要确定控件的行为,再次要测试用户输入的数值是否可以接受,最后是把数据写入到工作表
中。这就是在这个学时中要完成的任务。
这个学时的重点包括:
• 在什么位置怎样去初始化用户窗体的值
• 使用V B A代码来显示用户窗体,在用户窗体运行时控制它的行为
• 执行数据合法有效性检查
• 把窗体上的数据移动到工作表中
15.1 初始化用户窗体中的值
当显示窗体时,在装载它时肯定需要某些初始化工作。例如,如果在 D a t e 文本框中显示
当天的日期的话,用户很可能就欣赏这个界面了。为了实现这一点,需要把一些代码放置到
用户窗体_ A c t i v a t e 过程中,该过程在窗体被激活时执行,也就是在这个过程中编写合适的代
码来初始化窗体上控件的值。将要在这个过程中完成的一项任务是使用一些单元格来填充列
表框,Expense Ty p e列表框和Card Ty p e列表框需要一些值,要输入这些值的话,请执行下面
的步骤:
1)切换到当前工作簿,进入到工作簿的 S h e e t 2 工作表,把S h e e t 2改名为L i s t s 。
2)把光标移动到单元格A 1 ,输入Expense Categories。
3)从单元格B 2 开始,输入下面的值:
单元格B2: Beach Umbrellas
单元格B3: Bike Rental
单元格B4: Golf Lesson
单元格B5: Golf, 18 holes
单元格B6: Golf, 9 holes
单元格B7: Pool To w e l s
单元格B8: Tennis Court
单元格B9: Tennis Lesson
4)选择范围B 2 : B 9,把这个范围命名为E x p e n s e s。
要为一个范围的单元格命名的话,选择公式栏左端的“名称”框,输
入这些单元的名称,按下回车键就可以了。
5)把光标移动到单元格E 1 ,输入Credit Card Ty p e s 。
6)从单元格F 2 开始,输入下面的值:
单元格F2: American Express
单元格F3: Diner's Club
单元格F4: Mastercard
单元格F5: Vi s a
7)选择范围F 2 : F 5 ,把它命名为C a r d Ty p e 。
8)保存工作簿。
9)按下A l t + F 11组合键返回到Visual Basic编辑器中。
在这个过程中要完成的下一个任务是为窗体上的某些控件提供初始化值和初始化设置,
要初始化用户窗体中的值的话,请执行下面的步骤:
1)双击用户窗体的灰色背景,打开代码窗口,如图 1 5 - 1 所示,该窗口中显示了用户窗体
_ C l i c k过程。
2)不需要在用户窗体_ C l i c k 过程中编写代码,而是要选择在 A c t i v a t e事件中编写代码。要
在代码窗口中显示A c t i v a t e事件的话,单击代码窗口右上端列表框的向下箭头,这个列表框叫
做事件框,从中找到并选择 A c t i v a t e,用户窗体_ A c t i v a t e过程就显示出来了。
3)在这个过程中输入下面的代码:
With lstExpenseTy p e
.RowSource = "Expenses "
.ListIndex = 0
End W i t h
t x t D a t e . Text = Format(Now, "mm/dd/yy ")
With lstCardType
.RowSource = "CardType "
.ListIndex = 0
End W i t h
4)按下F 5键来运行该过程,用户窗体将如图 1 5 - 2所示显示出来,注意到列表框中填充了
第15学时 实现用户窗体的自动功能使用127
图15-1 代码窗口是用来创
建和修改用户窗体
代码的编辑器
一些值,而且在D a t e 文本框中显示了当天的日期。
5)关闭该窗体,返回到Visual Basic编辑器。
对窗体中的某些值进行初始化的关键就是使用窗体的 A c t i v a t e事件,如上面步骤介绍的那
样。使用类似的代码,就能够初始化选项按钮、复选框的值,也能够初始化列表框、文本框
的初始值,初始化标签的标题等等。在用户窗体 _ A c t i v a t e 过程中,使用了几个列表框和一个
文本框,程序清单1 5 - 1给出了这个过程的完整代码。
程序清单15-1 用户窗体_ A c t i v a t e 过程的完整代码
1: Private Sub UserForm_Activate ()
2: With lstExpenseTy p e
3: .RowSource = "expenses"
4: .ListIndex = 0
5: End Wi t h
6 :
7: txtDate.Text = Format(Now, "mm/dd/yy")
8 :
9: .With IstCardTy p e
10: .RowSource = "CardTy p e "
11: .ListIndex = 0
12: End Wi t h
13: End Sub
在程序清单中,两个 Wi t h 语句都是用来处理列表框的。以第一个 Wi t h 语句为例,可以看
到设置了两个属性:
With lstExpenseTy p e
.RowSource = "expenses"
.ListIndex = 0
End Wi t h
R o w S o u r c e属性引用了一个单元格范围,就是在这个范围中存放了用来填充到列表框的值。
128使用中文Excel 2000编程 2 4 学时教程
图1 5 - 2 使用窗体的 A c t i v a t e
事件能够为用户自动
地提供一些初始化值
和初始化设置
当使用单元格的值来填充列表框时,最好使用命名了的单元格范围,因为这对于开发人员来
说更容易。
L i s t I n d e x属性决定了列表框中哪一个值显示出来,列表框中值的索引是从 0开始计数的。
该过程所初始化的另外一个对象类型是文本框:
t x t D a t e . Text = Format ( Now, "mm/dd/yy")
N o w 函数是用来返回当前日期的, F o r m a t 函数把日期按照“ m m / d d / y y ”(月/日/年)的格
式来显示。
15.2 显示用户窗体
你也许在考虑不从 Visual Basic编辑器中运行用户窗体的话,该怎样来显示它呢?下面就
将编写一个简单的过程来实现用户窗体的显示。可以把这个过程分配给各种不同的对象,比
如分配给命令按钮、工具栏按钮和菜单命令项等等。
有关使用工具栏的更多信息,请参阅第 1 6学时。有关使用菜单的更多
信息,请参阅第1 7 学时。
因为把过程分配给工具栏和菜单命令项在本书中还没有讨论到,所以现在准备把用来显
示窗体的过程分配给命令按钮。用来显示对话框的过程只需要一行代码:
f r m G u e s t E x p e n s e s . S h o w
用户窗体的S h o w方法把窗体装载到内存中并显示它。要创建这个过程的话,请执行下面
的步骤:
1)如果还没有准备好,那么请切换到 Visual Basic编辑器,添加一个新模块到工作簿中。
2)创建一个新过程,把它命名为 S h o w G u e s t E x p e n s e s。
3)在这个过程中输入下面的代码:
f r m G u e s t E x p e n s e s . S h o w
4)切换到工作簿的S h e e t 1工作表,添加一个命令按钮到这个工作表上。
要添加命令按钮的话,必须让“窗体”工具栏显示出来。
5)当“指定宏”对话框显示出来时,选择 S h o w G u e s t E x p e n s e s。
6)把命令按钮的标题设置为 Show Guest Expenses,然后在命令按钮之外的任意位置单击
以不选中该命令按钮。
7)要显示窗体的话,单击该命令按钮,窗体就显示出来了,注意到两个列表框控件和
D a t e 文本框控件都已经初始化了。
8)关闭窗体并保存工作簿。
现在你知道了,使用 S h o w 方法来显示窗体是很容易的。在本书以后的章节里,将介绍从
工具栏按钮和菜单命令来使用 S h o w G u e s t E x p e n s e s 过程显示窗体的方法。
15.3 控制窗体的行为
在显示窗体以后,可能需要窗体具有不同的行为。例如,当选中 Tip Included复选框时,
第15学时 实现用户窗体的自动功能使用129
就需要启用Tip Amount文本框供用户使用。又比如,如果 Credit Card选项按钮被选中的话,
那么就应该启用跟信用卡信息相关联的所有控件供用户使用。要实现窗体的不同行为的话,
需要在合适控件的 c h a n g e 事件过程中编写代码。当控件的 Va l u e 属性改变时, C h a n g e 事件就
触发了。因为将使用选项按钮 (Credit Cart)和复选框 ( T ip Included),所以当 Va l u e 属性为
Tr u e时,就需要启用相关的控件供用户使用。要输入代码以启用控件的话,请执行下面的
步骤:
1)如果还没有准备好,那么请切换到 Visual Basic编辑器,打开f r m G u e s t E x p e n s e s 窗体。
2)双击Tip Included复选框以打开代码窗口。
3)从代码窗口的“事件”列表框中选择 C h a n g e,在c h k Ti p I n c l u d e d _ C h a n g e过程中输入下
面的代码:
If chkTi p I n c l u d e d . Value = True Then
l b l TipAmount.Enabled = Tr u e
t x t TipAmount.Enabled = Tr u e
E l s e
l b l TipAmount.Enabled = False
t x t TipAmount.Enabled = False
End If
4)位于代码窗口左上角的是一个列表框,该列表框中当前选中的是 c h k Ti p I n c l u d e d 。单
击列表框的向下箭头,查找到 o p t C r e d i t C a r d并选中它。
5)从事件列表框中选择 C h a n g e 事件,于是o p t C r e d i t C a r d _ C h a n g e 过程就在代码窗口中显
示出来了。
6)在o p t C r e d i t C a r d _ C h a n g e 过程中输入下面的代码:
If optCreditCard.Vlaue = True Then
l b l C a r d Type.Enabled = Tr u e
l s t C a r d Type.Enabled = True
l b l C a r d N u m b e r.Enabled = Tr u e
t x t C a r d N u m b e r.Enabled = Tr u e
lblExpires.Enabled = Tr u e
txtExpires.Enabled = Tr u e
E l s e
l b l C a r d Type.Enabled = False
l s t C a r d Type.Enabled = False
l b l C a r d N u m b e r.Enabled = False
t x t C a r d N u m b e r.Enabled = False
lblExpires.Enabled = False
txtExpires.Enabled = False
end if
7)切换到工作簿的 S h e e t 1工作表,单击该工作表上的命令按钮,窗体就显示出来了,如
图1 5 - 3 所示。
8)选中Tip Included复选框,启用Tip Amount控件。
9)选择Credit Card选项按钮,启用信用卡控件,如图 1 5 - 4所示。
1 0)关闭窗体并保存该工作簿,然后返回到 Visual Basic编辑器。
130使用中文Excel 2000编程 2 4 学时教程
剩余99页未读,继续阅读
资源评论
- laigs2182012-06-21这份共两份内容不错,适合excel vba新手。
fireskj
- 粉丝: 1
- 资源: 40
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- database-project-massunaAi笔记
- 2%EF%BC%9A%E9%99%95%E8%A5%BF%E
- yyspdz62_944.apk
- SAP公司间采购EDI配置-如何触发自动MIRO.docx
- python197基于图像识别的仪表实时监控系统.rar
- python196基于循环神经网络的情感分类系统.rar
- I2C驱动SHT30温湿度传感器和LCD12864使用例程(RSCG12864B)
- python193中学地理-中国的江河湖泊教学网(django).rar
- python191基于时间序列分析的大气污染预测软件(django).rar
- python190基于人脸识别智能化小区门禁管理系统.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功