excel_vba_编程教程(完整版)-第13部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
End With
2.使用对象变量。
如果你发现一个对象引用被多次使用,则你可以将此对象用 Set 设置为对象变量,以减少
对对象的访问。如:
12
… 页面 29…
Visual BASIC 程序设计网络教学 橄榄树
整 理
Workbooks(1)。Sheets(1)。Range(″A1″)。Value = 100
Workbooks(1)。Sheets(1)。Range(″A2″)。Value = 200
则以下代码比上面的要快:
Set MySheet = Workbooks(1)。Sheets(1)
MySheet。Range(″A1″)。Value = 100
MySheet。Range(″A2″)。Value = 200
3.在循环中要尽量减少对象的访问。
For k = 1 To 1000
Sheets(″Sheet1″)。Select
Cells(k;1)。Value = Cells(1;1)。Value
Next k
则以下代码比上面的要快:
Set TheValue = Cells(1;1)。Value
Sheets(″Sheet1″)。Select
For k = 1 To 1000
Cells(k;1)。Value = TheValue
Next k
方法 3:减少对象的激活和选择
如果你的通过录制宏来学习 VBA 的,则你的 VBA 程序里一定充满了对象的激活和选择,例
如 Workbooks(XXX)。Activate、Sheets(XXX)。Select、Range(XXX)。Select 等;但事实上大多数
情况下这些操作不是必需的。例如
Sheets(″Sheet3″)。Select
Range(″A1″)。Value = 100
Range(″A2″)。Value = 200
可改为:
With Sheets(″Sheet3″)
。Range(″A1″)。Value = 100
。Range(″A2″)。Value = 200
End With
方法 4:关闭屏幕更新
如果你的 VBA 程序前面三条做得比较差,则关闭屏幕更新是提高 VBA 程序运行速度的最有
效的方法,缩短运行时间 2/3 左右。关闭屏幕更新的方法:
Application。ScreenUpdate = False
请不要忘记 VBA 程序运行结束时再将该值设回来:
Application。ScreenUpdate = True
以上是提高 VBA 运行效率的比较有效的几种方法。
第七课 如何在 Excel 里使用定时器
用过 Excel 97 里的加载宏 〃定时保存〃 吗?可惜它的源程序是加密的,现在就上传一篇
介绍实现它的文档。
在 Office 里有个方法是 application。ontime ,具体函数如下:
expression。OnTime(EarliestTime; Procedure; LatestTime; Schedule)
如果想进一步了解,请参阅 Excel 的帮助。
这个函数是用来安排一个过程在将来的特定时间运行,(可为某个日期的指定时间,也可为
指定的时间段之后)。通过这个函数我们就可以在 Excel 里编写自己的定时程序了。下面就举
两个例子来说明它。
1。在下午 17:00:00 的时候显示一个对话框。
Sub Run_it()
Application。OnTime TimeValue(〃17:00:00〃); 〃Show_my_msg〃
'设置定时器在 17:00:00 激活,激活后运行 Show_my_msg 。
End Sub
13
… 页面 30…
Visual BASIC 程序设计网络教学 橄榄树
整 理
Sub Show_my_msg()
msg = MsgBox(〃现在是 17:00:00 !〃; vbInformation; 〃自定义信息〃)
End Sub
2。模仿 Excel 97 里的 〃自动保存宏〃;在这里定时 5 秒出现一次
Sub auto_open()
MsgBox 〃欢迎你,在这篇文档里,每 5 秒出现一次保存的提示!〃; vbInformation; 〃请注意!
〃
Call runtimer '打开文档时自动运行
End Sub
Sub runtimer()
Application。OnTime Now + TimeValue(〃00:00:05〃); 〃saveit〃
' Now + TimeValue(〃00:15:00〃) 指定在当前时间过 5 秒钟开始运行 Saveit 这个过程。
End Sub
Sub SaveIt()
msg = MsgBox(〃朋友,你已经工作很久了,现在就存盘吗?〃 & Chr(13) _
& 〃选择是:立刻存盘〃 & Chr(13) _
& 〃选择否:暂不存盘〃 & Chr(13) _
& 〃选择取消:不再出现这个提示〃; vbYesNoCancel + 64; 〃休息一会吧!〃)
'提示用户保存当前活动文档。
If msg = vbYes Then ActiveWorkbook。Save Else If msg = vbCancel Then Exit Sub
Call runtimer '如果用户没有选择取消就再次调用 Runtimer
End Sub
以上只是两个简单的例子,有兴趣的话,可以利用 Application。Ontime 这个函数写出更多更
有用的定时程序。
14
… 页面 31…
三、学习微软 Excel 2002 VBA 编程和 XML,ASP 技术
ASP已经趋于淘汰了,Vbscript将慢慢退出舞台了,其实他是vba的子集,相比vba来讲更容易
一些,用不着深入学
摘自2004…3…8hzg7818版主的答复
作者:Julitta Korol 翻译:Tiger Chen Nov 28’ 2004
本书展示了Excel 2002 在标准用户界面之外什么是可行的。如果你曾经想不使用菜单来打开
一个新的工作表,或者创建一个充分自动化的自定义窗体来收集数据和在工作表里存储结果,那么
你必须学习一些编程。本书教你如何通过将一些费时的和重复的工作交给Excel,从而更加成果丰
富。使用Excel内置语言,VBA (Visual Basic for Applications),你将给自己或他人带来非常高
的自动化程度的电子表格。通过使用许多内置的编程工具,你做得可以比想象中容易得多。你不要
增加额外费用,除非你想熟悉Excel背后的秘密。在Excel窗口下,同时按下Alt+F11,你将进入VB
编辑器界面——Excel的编程界面。既然这个保护得很好的秘密已经公开了,就让我告诉你更多一
些。除了VBA之外,本书还介绍了两种可以和Excel并用的热门英特网技术。一种是ASP (Active
Server Pages),另一种是XML (Extensible Markup Language)。你也可以学习到许多其它的支持
技术。因此,如果你真正想要获得一些热门技术,请立即购买本书,并且不要浪费时间,马上开始
学习。Learn Microsoft Excel 2002 VBA Programming with XML and ASP 带领你从始至终创建VBA
过程,VBScripts,ASP 页面,XML 文件和XSL 工作表。沿着这条路,有许多详细的,适用的“如
何做”例子和插图。本书的方法是“由做而学”。本书的前面几章介绍了一些基本的VBA概念,循序
渐进,复杂的主题在后面的章节。十七章中的每一章是按循序的。此外,本书还由四章附录,讨论
在Excel里针对一些特殊方面的操作和编程。本书可以当作是一种在办公室或家里学习的课程。许
多课程都有前提条件,本书也不例外。Learn Microsoft Excel 2002 VBA Programming with XML and
ASP 不会向你介绍Excel的基本东西,例如菜单和快捷键。我们假设你已经喜欢使用Excel,并且有
兴趣学习如何与Excel在它自己的语言里交流,学习如何将它与现在的英特网技术结合。
第一章 电子表格自动化简介和了解宏命令
club。excelhome/dispbbs。asp?boardID=2&ID=72173&page=5
你准备好了增进你的微软 Excel 2002 电子表格的智能吗?通过将日常工作自动化,你可以使
你的电子表格更快,更有效。本章带领你步入使用宏命令来加速电子表格的过程。你将学到宏是什
么,如何以及什么时候使用它们,乃至如何编写和修改宏代码。开始学习宏命令很简单。创建宏并
不需要什么,只是一些你已经拥有的知识——基本的微软Excel 2002 菜单知识和电子表格概念。
你准备好开始了吗?确保你坐在计算机前并且打开了Excel 2002。
1 了解宏
宏是一些储存了一系列命令的程序。当你创建一个宏命令的时候,你只是将一系列的键盘输入结合
成一个简单的命令,你以后可以“回演”这个命令。因为宏命令可以减少复杂任务的步骤,使用宏
命令可以显著得减少你花在创建,设置格式,修改和打印工作表的时间。你可以通过Excel内置的
录制工具来创建宏命令,也可以在代码编辑器里面直接写代码。微软 Excel 2002 电子表格具有强
大的编程功能。
技巧1-1:普通语言
Excel 5 是市场上第一个使用VBA的软件。从那以后,VBA开拓了在所有微软办公应用软件中的应用。
这意味着你从本书中学习的VBA将来同样可以应用到其它微软办公软件中,例如:Word; PowerPoint;
Outlook or Access
2 宏命令的普通应用
微软 Excel 2002 带来了很多内置,节省时间的特点,这些使你工作得更快更聪明。在你决定用宏
命令来自动化工作表任务前,确保没有现成的内置工具来做这项任务。然而,当你发现你需要反复
地做一些动作,或者Excel没有提供一个内置工具帮你完成该任务,那么创建一个宏命令吧。宏命
令可以使你能够将工作表的任何部分工作自动化。例如,你可以自动化数据录入——创建一个宏命
令在工作表输入标题或者用新标签取代列标题。宏命令可以帮你检查选中的工作表区域里的重复
15
… 页面 32…
值。你可以通过宏命令快速地将格式应用到多个工作表,并且可以结合不同的格式,例如字体,颜
色,边框和阴影等。尽管如此,Excel 还拥有非常强大的图表功能,如果你想要将图表创建和格式
设置自动化,那么宏命令是一个好方法。宏命令也可以帮助你设置打印区域,页边距,页眉,页脚,
以及选择特殊的打印选项。
3 写宏之前的计划
在你创建一个宏命令之前,花几分钟来考虑你究竟想做什么。因为宏命令是一大堆键盘输入的集合,
事先计划你的行动非常重要。最早的计划宏命令的方法是手动地将宏命令需要做的事情做一遍。在
你做键盘输入的同时,在一张纸上记录下他们实际发生的情况,不要漏掉任何东西。象录音机一样,
Excel 可以将你的所有动作录制下来(译者:事实上并非如此,有些操作是无法录制的)。如果在
录制宏之前,你没有很好地计划,你会录制很多不必要的步骤,而这些都会影响运行速度。尽管修
改宏代码比去除录制宏里面不必要的步骤容易,但是,仅仅录制必要的步骤会节省你修改代码的时
间和以后的麻烦。
假设你想看一眼哪些区域是文本,哪些是数字以及哪些是公式,图1-1显示了使用不同的字体颜色
和样式来区分这些单元格里潜在的内容。
图1-1
如何设置如图1-1所示的格式?打开一个含有公式计算的工作表,或者创建一个如图所示的例子。
如果你用图示例子,请确保用SUM函数计算每月和季度的总结。
在录制宏之前,请做如下操作:
1. 选取一个单元格
2. 选择“编辑”-“定位”
3. 在“定位”对话框中,点击“特殊”按钮
4. 在“特殊”对话框中,勾选“常数”——勾选“文本”,同时去除“数字”,“逻辑值”和“错
误值”的勾选
5. 按“确定”返回工作表。注意,这时含有文本的单元格已经被选中了。小心,不要改变选中
区域,直到你在下一步做一些必要的格式设置
6. 对选中区域。选择“格式”-“单元格”
7. 在单元格格式设置对话框,选择“字体”-设置字体为“粗体”,颜色为“紫色”。然后点击
“确定”关闭对话框。注意,含有文本的单元格显示了不同