(1)插入一个模块,编写两个Sub过程,分别以?模式窗口?和?无模式窗口?显示?我的窗体?(可在显示窗体命令的下一行再编写另外一条指令查看两者在程序执行过程中的区别);
(2)在工作表上插入两个窗体控件的按钮(记住是窗体控件),分别改按钮上显示的字为?模式窗体?和?无模式窗体?,并把刚才编写的两个宏分别指定给它们;
(3)再次进行入?我的窗体?的设计模式,添加两个按钮,分别改其?Caption?属性为?隐藏窗体?和?卸载窗体?。分别为两个按钮编写响应其相应事件的代码,使得当单击?隐藏窗体?按钮时,隐然?我的窗体?,单击?卸载窗体?时,卸载?我的窗体?。 弄好后,你可以点击工作表上的铵钮,调出窗体,看看自己的第一件作品了。 为避免大家都不习惯,我还是不客气好了。。。。。11楼的代码 为什么前面要if呢?为什么不全部case?
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Select Case [a1].Value Case \
MsgBox \未输入任何字符\ Case Is < 60 MsgBox \不及格\ Case Is < 85 MsgBox \较好\
Case Is < 100.0001 MsgBox \优秀\ Case Else
MsgBox \不能识别\End Select End Sub
引用:
为避免大家都不习惯,我还是不客气好了。。。。。11楼的代码 为什么前面要if呢?为什么不全部case?
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Select Case [a1].Value Case \ Ms ... =====
你的这个更规范了,呵呵。。。。赞一个! 我也不知道当时我为什么不全用Case。。。。汗。。。。 再说Excel的对象模型 ---------------------
在前面的贴子里,我们简单介绍了VBA的开发环境、语法基础及常用的语句。同时对集合、对象、属性、方法和事件等几个重要的概念作了简单的讲解。通过学习,你是否有所收获?我说了,我只是给你指路。就像你说你要到北京天安门看升国旗仪式,我只能告诉你打出租车到机场,花一千块买张机票你就可以去了,我可不能把你背去北京我再要着饭走回来。所以现在,对前面学过的内容,你可以在心里面作一个回顾,问问自己,通过学习,收获了什么?还存在什么不足?接下来该怎么做?
适时的小结是很有必要的,可以看到存在的不足和努力的方向。
所以这一贴,没有新内容,再来说一说Excel的对象模型,当作是一种对前面的回顾也
罢,当作是和大家的一种闲聊也行。不管了!
VBA是通过对象操作来操作和控制Excel。不管是操作Excel程序(Application对象)、工作薄(Workbook对象)、工作表(Worksheet对象)、单元格(Range对象)还是操作图表(Chart对象)、窗体(Userfrom对象)等等,都是在操作对象。每个对象都是其他对象的一部分,也可以由其他对象组成。这个前面的贴子已经讲过,这里不再多说。 我要说的是,VBA的语法和Excel的对象模型组成了应用Excel VBA程序设计的基础,从某种意义上来说,理解和熟悉Excel对象模型的过程,也就是使用Excel VBA进行程序设计的过程。所以,熟悉Excel的对象模型,对我们学习VBA的重要性可想而知。 可是,什么是Excel的对象模型?
不知道这样讲你是否能理解:家里面有厨房吧?厨房里面有很多的东西,比如碗柜,冰箱等,而碗柜里又有饭碗,盘子等,冰箱里有鸡蛋,黄瓜等。Excel就像一个装了很多东西的大厨房,Workbook对象就像冰箱,Worksheet就像冰箱里的蔬菜啊什么的。当我们给这个大厨房及厨房里的这些对象画一个简单的结构图时,这个结构图我们就称之为对象模型。 下面就是Excel的对象模型结构图:
2-1.jpg (150.82 KB)
Excel对象模型在Excel的帮助文件里就有了,我们可以通过打开帮助来查看它。如果你找不到,请打开你的OFFICE的安装目录,找到\\OFFICE11\\2052目录下的VBAXL10.CHM。这个文件就是Excel VBA的Help文件了,双击打开它,你就可以看到我们上面的图了。
从对象模型,我们可以看到对象之间的包含关系,Excel最顶端的对象为Application对
象,即Excel程序本身,其他所有的对象都是在Application对象的下面。用鼠标单击其中的每一个对象,就可以跳转到对象的说明。
呵呵,知道什么是VBA了吧?就是对以上这些对象的操作。就像在厨房里做饭是对厨房里各种对象进行操作一样,在Excel Vba程序设计过程中,我们就是通过读取或设臵对象的属性、调用对象的方法、编写事件过程来操作Excel。
对象模型很重要,是的。但是Excel对象模型包括了大量的对象、属性和方法,就像书架上放着的汉语大词典,也许有些内容我们一辈子都不会用到它,所以就像我们不用去记住词典的内容一样,我们不必记住对象模型里的所有内容。我们要做的只是熟悉它的结构和组成,需要用到时,翻开字典,查到它所在的页码,然后快速地去打开它。
熟悉了对象模型,当你在学习VBA的过程中,如果再有什么问题,有字典可查了吧?千万不要忘记了这个随时跟在我们身边的老师。
不要嫌查字典的麻烦,二年级时你天天翻字典,到高中到大学了你还天天翻吗?从菜鸟到高手,就是一个从查Help到不需要查Help的过程,刚开始时解决一个问题也许需要几个小时,后来也许会快到只要几分钟。呵呵……这是别人告诉我的,我相信,现在我还在坚持翻字典,但我坚信会有不需要再翻它的那一天!也希望你信!
PS:如果你的Excel里没有Help,找不到对象模型的文件,那我给你一个:
VBAXL10.part1.rar (480 KB) VBAXL10.part1.rar (480 KB) VBAXL10.part2.rar (480 KB) VBAXL10.part2.rar (480 KB) VBAXL10.part3.rar (480 KB) VBAXL10.part3.rar (480 KB) VBAXL10.part4.rar (480 KB) VBAXL10.part4.rar (480 KB)
VBAXL10.part5.rar (333.47 KB) [小试牛刀]制作个性化的欢迎界面 --------------------------------
如果你辛辛苦苦设计了一个Excel应用程序,想不想很臭美的显摆一下?那我们就给它设计一下?欢迎界面?吧,让每一次别人用它的时候都给他点信息,告诉他,这是爷我做的,顺便也打打广告什么的。
什么是?欢迎界面??经常作用电脑的我们应该不陌生吧?打开Excel、Word、PS等等软件时,在加载的那几秒钟里,都显示一个欢迎界面,给我们介绍了一些基本的信息。
这一贴我们就来给我们的Excel做一个个性化的欢迎界面,需要实现的目的是:
(1)打开Excel文件时,隐藏Excel应用程序的界面,同时弹出一个欢迎界面,界面上有你想向别人显摆的内容,有什么,随你了;
(2)欢迎界面显示5秒钟后,退出欢迎界面,进入Excel文件; (3)界面上要动态显示几秒钟后进入工作薄。 例子见附件:
欢迎界面.rar (40.37 KB) 欢迎界面.rar (40.37 KB)
----------------------------------
这是我们第一次来做例子,在制作的过程中,也许你需要弄清楚以下一些问题,如果不知道的,去查Help了:
1、想一想,需要发生什么事件才能实现在打开Excel的时候隐藏程序的界面而显示欢迎界面?
2、要隐藏或显示一个对象,需要修改它的Visible属性,Excel应用程序是什么对象?还记得吗?
3、显示一个窗体要用什么方法?关闭一个窗体要用怎么做? 4、如果我们用一个标签来显示?几秒种后进入文件?,那么每隔一秒种我们需要修改一次该标签的什么属性?
5、怎样安排一个程序在将来的某个时间运行?这需要用到OnTime方法。 如果有一个程序名叫?mysub?,我们需要这个程序在5秒钟后运行,则代码为: 复制内容到剪贴板 代码:
Application.OnTime Now + TimeValue(\ 详情可以查对象模型,里面有介绍。 6、怎么在程序里调用另一个过程? 语句格式为:Call 程序名
如要在一个程序里运行名为?mysub?的过程,只需要输入:Call mysub即可。 其实直接输入程序名也可以,但我不喜欢这样做,总感觉不便于阅读!
7、怎样禁用户通过关闭窗体右上角的关闭按钮关闭?欢迎界面??这需要用到窗体(UserFrome对象)的QueryClose事件了。请查看Help。
好了,能告诉你的就这么多了,希望你能做出来!我例子的密码会在下一贴的时候公布!为了能好好显摆一下,希望你的欢迎界面不要像我的这样简单,多给它美化美化,不但可以加深自己对窗体的认识,还可以增加显摆的条件。 希望各位把自己的成果展现出来,供大家学习! 处理单元格数据
VBA程序设计的最终目的是什么?更多的当然是为了处理数据。所以,这一贴,将来讲一讲用VBA处理单元格区域。当然,因为我知道的本身不多,所以,并不能把所有的东西都告诉你,我只是举一些简单的例子,供大家学习作参考用。
建议大家在读贴的过程中,动动手,亲自试一试,相信这样的亲身经历会给你的学习带来一定的帮助。
一、复制单元格区域
如果你感到无从着手,别忘了?录制宏?的功能。虽然录制宏生成的代码不是最有效的,但它生成的代码可以为我们提供很多的信息。
好了,闲话不说。自行录一段复制A1单元格到B1单元格的宏。打开VBE编辑器,得到如下代码:
复制内容到剪贴板 代码:
Sub Macro1() '
' Macro1 Macro
' 宏由 ggsmart 录制,时间: 2009-8-23 '
'
Range(\ Selection.Copy
Range(\ ActiveSheet.Paste End Sub