admin 管理员组文章数量: 1184232
2024年3月9日发(作者:eclipseide怎么导入jar包)
Excel VBA用户窗体编程基础
本文详细介绍了用户窗体的基本概念及常用技术。
概述
当使用MsgBox函数和InputBox函数不能满足与用户交互的需求时,可以使用用户窗体来自
定义对话框。能够使用用户窗体来显示所输入的数据,甚至能够使用用户窗体创建一个完整
的用户界面,而不会让用户接触到电子表格本身。
您在Windows对话框中所看到的大多数控件都能在用户窗体中实现——命令按钮,选项按钮,
复选框,文本框,组合框——加上一些其它不常用的控件,像图像、日历,等等。
本文介绍了用户窗体的基本概念,并介绍了使用用户窗体的常用技术。其中,也讲解了一些
最通用的思路。在文章中列举了一个包含所有过程的完整的示例文件,以及实现这些过程的
代码,让您能在实践中看到所有工作的基本原理和方法。
本文包含以下内容:
基本的用户窗体操作
用户窗体和控件的属性
一个用户窗体的生命周期
用户窗体和控件的事件
问题1:如何在用户窗体间传递数据?
问题2:如何找到我的窗体中的某类控件?
问题3:如何获取数据到列表框中?
问题4:如何为循环创建进度条?
基本的用户窗体操作
创建一个用户窗体。打开VBE编辑器(选择菜单“工具——宏——Visual Basic编辑器”
或按Alt+F11组合键),选择菜单“插入——用户窗体”,或者在工程窗口中单击右键,
从弹出的快捷菜单中选择“插入——用户窗体”,即可创建一个用户窗体。
添加控件。当创建了一个用户窗体后,将会显示一个名为“控件工具箱”的浮动工具箱
(如果没有该工具箱的话,可以从视图菜单中找到它),其中显示了最常用的控件类型。
单击想要的控件,拖动它到用户窗体中。
更多的控件。有一些更多的可用的控件,可以在控件工具箱中单击右键,从中选择“附
加控件”,能够添加日历、电子表格、图形,等等。
添加事件程序。事件允许当用户对窗体和控件进行操作时作出相应的反应,事件程序要
放置在用户窗体模块中,能够通过双击用户窗体或控件来打开代码模块窗口,或者在用
户窗体或控件中单击右键,从快捷菜单中选择“查看代码”来打开代码模块窗口,或者
Excel VBA用户窗体编程基础
在工程窗口中的用户窗体图标上单击右键后选择“查看代码”来打开代码模块窗口。然
后,在代码模块窗口中,对用户窗体或控件添加相应的事件程序代码。
显示用户窗体。打开用户窗体模块,按F5键可以运行宏程序,或者单击工具栏中的运
行按钮,将显示用户窗体。注意,在用户窗体模块中按F5键并不会运行光标所在的子
过程,而是运行用户窗体自身。
调试。和在宏程序中一样,按F8键允许您逐语句运行代码。
用户窗体和控件的属性
用户窗体和控件都有属性(如尺寸、位置,等等),能够在设置用户窗体时改变这些属性,并
且它们中的大多数属性也能够在运行时通过代码来改变。在设置用户窗体时所选择的值是缺
省值,在运行时所作的变化仅当用户窗体被装载时有效。
两个最重要的属性是Name属性和Value属性:
Name属性可用于指定某个控件。能够通过控件的索引号指定控件,但这样会难于理解
和调试,因此,使用名称是更可取的。
Value属性是所使用的实际输入或者输出的数据。在不同的控件中,该属性值稍有区别。
例如,选项按钮控件和复选框控件的Value属性值为True/False,而文本框控件的Va
lue值则是该文本框所包含的文本。Value属性既可用于输入,也可用于输出。
例如:
= Range("A1").Value
Range("B1").Value =
一个好习惯
给用户窗体和控件起一个具有描述性且分类清楚的名字。将会发现在每类控件名前加一个前
缀是很有帮助的,例如,frm代表用户窗体,opt代表选项按钮,等等。这样将会使代码更
易阅读,并且也会允许使用一些技术,否则代码将会很复杂。
指定控件和用户窗体,以及Me关键字
当在用户窗体代码模块中指定窗体中的控件时,可以通过名字指定他们,例如txtFirstNam
="John"。对于在其它用户窗体中的控件,用户窗体名称应该放在控件名之前,例如,
artments。
同样的方法对在用户窗体模块中所声明的公共变量也是有效的——这是用户窗体的基本属
性(例如,e)。注意,不能在用户窗体的代码模块中声明全局变量。
Me是一个在用户窗体的代码模块中指定该用户窗体的快捷方式(例如,表示当前
用户窗体的高度)。又如,在用户窗体UserForm1中指定TextBox1:
'在当前用户窗体模块中
" = "Example"
'在不同的模块中
= "Example"
- 2 -
fanjy_EH
版权声明:本文标题:Excel VBA用户窗体编程基础 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1709980091a552095.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论