Excel+VBA编程入门范例

2018-11-30 20:17

http://www.tt198.net/2006年9月7日 http://fanjy.- 1 - blog.excelhome.net 前 言

很喜爱 VBA,喜欢使用她对 Excel 操作实现所需的功能,更喜欢使用 VBA控制 Excel 以及 实现结果后的那种感觉。

一直都想对 ExcelVBA 进行系统的整理和归纳,但由于对 Excel 及 VBA 了解得不够深入, 总觉得无从下手。再加上又是利用少得可怜的业余时间进行学习,时断时续,学习的主线和 思路也经常因为工作或其它的事情而打断。但喜欢学习的人总会挤得出时间来的,要想掌握 或者是精通一门知识和技术不能有任何借口。幸运的是,有网络这个大平台,更有

ExcelHome 众多网友的帮助和鼓励,这几个月,总算坚持了下来。对 Excel 的痴迷没有停 留在头脑和心中,而是体现在了具体的行动以及积极的学习和参与上来,因此,收获很大, 感觉水平也有明显的提高。

现在,我计划利用点滴的业余时间,将基本的 ExcelVBA操作用简短的实例进行演示,编辑 成《ExcelVBA 编程入门范例》,以此对 ExcelVBA 基础知识进行一次归纳和整理,从而理 清学习 ExcelVBA的线条,同时也希望能对热衷于 Excel 的朋友以及 ExcelVBA初学者快速 了解和步入 ExcelVBA编程殿堂有所帮助。这是我第一次偿试对所学知识进行较大规模的整 理,希望大家能多提改进意见和建议,以利于改进和提高,也有助于以后的学习和编写出更 好的作品呈献给大家。 主要内容和特点 《ExcelVBA 编程入门范例》主要是以一些基础而简短的 VBA 实例来对 ExcelVBA 中的常 用对象及其属性和方法进行讲解,包括应用程序对象、窗口、工作簿、工作表、单元格和单 元格区域、图表、数据透视表、形状、控件、菜单和工具栏、帮助助手、格式化操作、文件 操作、以及常用方法和函数及技巧等方面的应用示例。这些例子都比较基础,很容易理解, 因而,很容易调试并得以实现,让您通过具体的实例来熟悉 ExcelVBA编程。 ■ 分 16章共 14个专题,以具体实例来对大多数常用的 ExcelVBA对象进行讲解; ■ 一般而言,每个实例都很简短,用来说明使用 VBA实现 Excel 某一功能的操作; ■ 各章内容主要是实例,即 VBA代码,配以简短的说明,有些例子可能配以必要的图 片,以便于理解; ■ 您可以对这些实例进行扩充或组合,以实现您想要的功能或更复杂的操作。 VBE编辑器及 VBA代码输入和调试的基本知识 在学习这些实例的过程中,最好自已动手将它们输入到 VBE 编辑器中调试运行,来查看它 们的结果。当然,您可以偷赖,将它们复制/粘贴到代码编辑窗口后,进行调试运行。下面, 对 VBE编辑器界面进行介绍,并对 VBA代码输入和调试的基本知识进行简单的讲解。 激活 VBE编辑器

一般可以使用以下三种方式来打开 VBE编辑器:

■ 使用工作表菜单“工具——宏——Visual Basic编辑器”命令,如图 00-01所示; ■ 在 Visual Basic工具栏上,按“Visual Basic编辑器”按钮,如图 00-02所示; ??ExcelVBA>>ExcelVBA编程入门范例>>前言(fanjy)

2006年9月7日 http://fanjy.- 2 - blog.excelhome.net ■ 按Alt+F11组合键。

图00-01:选择菜单“工具——宏——Visual Basic编辑器”命令来打开VBE编辑器

图00-02:选择Visual Basic工具栏上的“Visual Basic编辑器”命令按钮来打开VBE编辑器 此外,您也可以使用下面三种方式打开 VBE编辑器: ■ 在任一工作表标签上单击鼠标右键,在弹出的菜单中选择“查看代码”,则可进入 VBE编辑器访问该工作表的代码模块,如图 00-03所示; ■ 在工作簿窗口左上角的 Excel 图标上单击鼠标右键,在弹出的菜单中选择“查看代 码”,则可进入 VBE编辑器访问活动工作簿的 ThisWorkbook 代码模块,如图 00-04 所示; ■ 选择菜单“工具——宏——宏”命令打开宏对话框,若该工作簿中有宏程序,则单 击该对话框中的“编辑”按钮即可进行 VBE编辑器代码模块,如图 00-05所示。 ??ExcelVBA>>ExcelVBA编程入门范例>>前言(fanjy)

2006年9月7日 http://fanjy.- 3 - blog.excelhome.net

图00-03:右击工作表标签弹出菜单并选择“查看代码”打开VBE编辑器 图00-04:右击Excel 图标弹出菜单并选择“查看代码”打开VBE编辑器 图00-05:在宏对话框中单击“编辑”按钮打开VBE编辑器 VBE编辑器窗口简介

刚打开 VBE编辑器时,所显示的窗口如图 00-06所示,其中没有代码模块窗口。 ??ExcelVBA>>ExcelVBA编程入门范例>>前言(fanjy)

2006年9月7日 http://fanjy.- 4 - blog.excelhome.net 图00-06:刚打开VBE编辑器时的窗口

可以在“工程资源管理器”中双击任一对象打开代码窗口,或者选择菜单“插入——模块” 或“插入——类模块”来打开代码窗口。一般 VBE编辑器窗口及各组成部件名称如图 00-07 所示,可以通过“视图”菜单中的菜单项选择所出现的窗口。同时,可以在“工程属性”窗 口中设置或修改相应对象的属性。 图00-07:VBE编辑器窗口 下面是带有用户窗体的 VBE 编辑器窗口,如图 00-08 所示。选择 VBE 菜单“插入——用 户窗体”,即可插入一个用户窗体。当插入用户窗体后,在“工程资源管理器”窗口中会出 现一个用户窗体对象,“工程属性”窗口显示当前用户窗体的属性,可对相关属性进行设置 或修改。同时,在用户窗体上用鼠标单击,会出现“控件工具箱”。在“工程资源管理器” 窗口双击用户窗体图标,会出现相应的用户窗体;在用户窗体图标或者是在用户窗体上单击 鼠标右键,然后在弹出的菜单中选择“查看代码”,则会出现用户窗体代码窗口。 ??ExcelVBA>>ExcelVBA编程入门范例>>前言(fanjy) 2006年9月7日 http://fanjy.- 5 - blog.excelhome.net 图00-08:VBE编辑器窗口(带有用户窗体) 在 VBE编辑器中输入 VBA代码 如前所述,您可以选择 VBE 菜单“插入——用户窗体/模块/类模块”来插入模块或用户窗 体以及相应的代码窗口。此外,您也可以在“工程资源管理器”中单击鼠标右键,从弹出的 菜单中选择“插入——用户窗体/模块/类模块”来实现上面的操作。在获取相应的代码模块 窗口后,就可以输入 VBA代码了。

在 VBE编辑器的代码模块中输入 VBA代码,通常有以下几种方法: ■ 手工键盘输入;

■ 使用宏录制器,即选择菜单“工具——宏——录制新宏”命令,将所进行的操作自 动录制成宏代码;

■ 复制/粘贴代码,即将现有的代码复制后,粘贴到相应的代码模块中;

■ 导入代码模块,即在 VBE编辑器中选择菜单“文件——导入文件”或在“工程资源 管理器”的任一对象上右击鼠标选择菜单“导入文件”,选择相应的代码文件导入。

如果不想要某个模块了,可以选择菜单“文件——移除模块”,也可以在相应的模块上单击 鼠标右键,从弹出的菜单中选择“移除模块”。此时,会弹出一个警告框,询问在移除模块 前是否将其导出,可以根据需要进行选择。

也可以选择菜单“文件——导出文件”或在相应的模块上单击鼠标右键后,从弹出的菜单中 选择“导出文件”,将移除的模块保存在相应的文件夹中。这样,以后可以对其进行导入, 从而加以利用。 调试 VBA代码 在 VBE 编辑器的菜单中,有两项与调试运行有关的菜单项,即“调试”菜单和“运行”菜??ExcelVBA>>ExcelVBA编程入门范例>>前言(fanjy) 2006年9月7日 http://fanjy.- 6 - blog.excelhome.net

单,它们提供了各种调试和运行的手段。在我现阶段进行代码调试时,常用到的有以下几个: ■ 逐语句。可以按F8键对代码按顺序一条一条语句运行,从而找出语句或逻辑错误。 ■ 设置断点。在可能存在问题的语句处设置断点(可通过在相应代码前的空白部位单 击,将会出现一个深红色的椭圆即断点),当程序运行至断点处时,会中止运行。

■ 在语句的适当部位设置 Debug.Print语句,运行后其结果会显示在“立即窗口”中, 可以此测试或跟踪变量的值。

■ 在“立即窗口”中测试。对值的测试或跟踪,也可以以“?”开头,在“立即窗口” 中输入需要测试值的语句,按 Enter 回车键后将立即出现结果;对执行语句的测试, 可直接在“立即窗口”中输入,按 Enter 回车键后将执行。 ■ 可以按 F5键直接运行光标所在位置的子程序。

在执行程序后,必须在 Excel 工作表中查看所得到的结果。可以用鼠标单击 VBE 编辑器左 上角的 Excel 图标或者是按 Alt+F11组合键切换到 Excel 界面。 (当然,对程序代码的调试有很多方法和技巧,留待以后对 VBA进一步研究和理解更透彻后 一并讨论。) 利用 VBA帮助系统 如果遇到疑问或错误,可以利用 Excel 自带的 VBA帮助系统。 ■ 可以在如图 00-09 所示的部位输入需要帮助的关键词,按 Enter 回车键后将会出现 相关主题。用鼠标单击相应的主题即会出现详细的帮助信息。 图00-09:帮助搜索窗口 ■ 可以按 F2键,调出“对象浏览器”窗口(如图 00-10所示),在搜索文本框中输入需 要帮助的关键词,将会在“搜索结果”中出现一系列相关的对象及方法、属性列表, 单击相应的对象则会在“类”和“成员”列表框中显示相应的对象和方法、属性成 员列表,在成员列表中相应的项目上按 F1 键即会出现详细的帮助信息。(“对象浏 览器”是一个很好的帮助工具,值得好好研究) 图00-10:对象浏览器窗口 ??ExcelVBA>>ExcelVBA编程入门范例>>前言(fanjy) 2006年9月7日 http://fanjy.- 7 - blog.excelhome.net 参考资料 《ExcelVBA编程入门范例》参考或引用了以下书籍和资料: (1)Excel 2003高级 VBA编程宝典

(2)Excel 2003与 VBA编程从入门到精通(中文版) (3)巧学巧用 Excel 2003 VBA与宏(中文版) (4)ExcelVBA应用程序专业设计实用指南 (5)ExcelVBA应用开发与实例精讲 (6)一些网上资源 更多的信息

关于 ExcelVBA 的更多参考和学习资源,可以在 www.excelhome.net 上查找,有疑问也可 以在 ExcelHome 论坛中提问。您也可以登录我的博客 http://fanjy.blog.excelhome.net,上 面有很多 Excel 的学习资料。同时,欢迎与我联系交流,我的 e-mail 是:xhdsxfjy@163.com。 “学习 Excel,使用 VBA对 Excel 进行控制操作是我很热衷的业余爱好之一。”——fanjy ExcelVBA>>ExcelVBA编程入门范例>>第一章 Application对象(fanjy) 2006年9月9日 http://fanjy.- 1 - blog.excelhome.net 第一章 Excel 应用程序对象(Application 对象)及其常用方法 基本操作应用示例 Application 对象代表整个 Microsoft Excel 应用程序,带有 175 个属性和 52 个方法,可以设置整个应用程序的环境或配置应用程序。

示例 01-01:体验开/关屏幕更新(ScreenUpdating属性) Sub 关闭屏幕更新()

MsgBox \关闭屏幕更新\

Worksheets(1).Select

MsgBox \Application.ScreenUpdating = True Worksheets(2).Select

MsgBox \Worksheets(3).Select

MsgBox \Worksheets(2).Select MsgBox \Worksheets(1).Select MsgBox \Application.ScreenUpdating = False Worksheets(2).Select MsgBox \Worksheets(3).Select MsgBox \Worksheets(2).Select Application.ScreenUpdating = True End Sub 示例说明:ScreenUpdating 属性用来控制屏幕更新。当运行一个宏程序处理涉及到多个工 作表或单元格中的大量数据时,若没有关闭屏幕更新,则会占用CPU 的处理时间,从而降 低程序的运行速度,而关闭该属性则可显著提高程序运行速度。 示例 01-02:使用状态栏(StatusBar属性) Sub testStatusBar() Application.DisplayStatusBar = True '开启状态栏显示 '赋值状态栏显示的文本

Application.StatusBar = \End Sub

示例说明:StatusBar 属性用来指定显示在状态栏上的信息。若不想再显示状态栏文本,可 使用 Application.StatusBar = False语句关闭状态栏显示,也可以在程序开始将原先的状态 栏设置存储,如使用语句 oldStatusBar = Application.DisplayStatusBar 将状态栏原来的信息 存储在变量 oldStatusBar,在程序运行完成或退出时,将变量重新赋值给状态栏,如使用语 句 Application.DisplayStatusBar = oldStatusBar,以恢复状态栏原状。 ExcelVBA>>ExcelVBA编程入门范例>>第一章 Application对象(fanjy) 2006年9月9日 http://fanjy.- 2 - blog.excelhome.net 示例 01-03:处理光标(Cursor 属性) Sub ViewCursors() Application.Cursor = xlNorthwestArrow MsgBox \Application.Cursor = xlIBeam MsgBox \Application.Cursor = xlWait

MsgBox \Application.Cursor = xlDefault MsgBox \End Sub

示例 01-04:获取系统信息 Sub GetSystemInfo()

MsgBox \MsgBox \MsgBox \MsgBox \

MsgBox \MsgBox \MsgBox \MsgBox \End Sub 示例说明:可以使用给 UserName属性赋值以设置用户名称。 示例 01-05:退出复制/剪切模式(CutCopyMode属性) Sub exitCutCopyMode() Application.CutCopyMode = False End Sub 示例说明:退出复制/剪切模式后,在程序运行时所进行的复制或剪切操作不会在原单元格 区域留下流动的虚框线。需要提醒的是,在程序运行完后,应使用 Application.CutCopyMode #NAME?示例 01-06:禁止弹出警告信息(DisplayAlerts 属性) Sub testAlertsDisplay() Application.DisplayAlerts = False End Sub 示例说明:在程序运行过程中,有时由于 Excel本身设置的原因,会弹出对话框,从而中断 程序的运行,您可以在程序之前加上 Application.DisplayAlerts = False 语句以禁止弹出这 些对话框而不影响程序正常运行。需要注意的是,在程序运行结束前,应使 DisplayAlerts 属性恢复为缺省状态,即使用语句 Application.DisplayAlerts = True。该属性的默认设置为 True,当将该属性设置为 False时,Excel 会使直接使用对话框中默认的选择,从而不会因 为弹出对话框而影响程序运行。

ExcelVBA>>ExcelVBA编程入门范例>>第一章 Application对象(fanjy) 2006年9月9日 http://fanjy.- 3 - blog.excelhome.net 示例 01-07:将 Excel全屏幕显示 Sub testFullScreen()

MsgBox \Application.DisplayFullScreen = True MsgBox \Application.DisplayFullScreen = False End Sub 示例 01-08:Excel启动的文件夹路径 Sub ExcelStartfolder()


Excel+VBA编程入门范例.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:河北省人民政府关于深化城镇住房制度改革加快住房建设的通知冀政

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: