友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
飞读中文网 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

excel_vba_编程教程(完整版)-第80章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



                    Case 3   
                         'Physics   
                         Me。lblGrade。Caption = Range(〃L〃 & indexPlus)。Value   
                         Me。lblDate。Caption = Range(〃M〃 & indexPlus)。Value   
              End Select   
         End With   
   End Sub   
   Private Sub MultiPage1_Change()   
         Me。lblWho。Caption = Me。txtLast。Value & 〃; 〃 _   
           & Me。txtFirst。Value   

                                          211 

… 页面 228…

         Call TabStrip1_Change   
    End Sub   

39。使用自定义窗体 Students and Exams  

既然你已经准备好多有必须的VBA过程了,我们来看看该窗体是如何对用户操作反应的。  
1。 切换到Excel窗口,并激活Sheet1  
2。 点击按钮Display Form  
    点击Display Form按钮运行过程DoStudents,该过程显示自定义窗体Students and Exams。 在 
    窗体出现在屏幕上之前,VB执行过程UserForm_Initialize里面的每条语句。结果显示为图 
    10…19。  

                                                                                            
图10…19 工作表里的按钮Display Form让你快速访问自定义窗体Students and Exams来查看或者输 
入数据。当窗体上载时,只有符合选定的选项按钮的控件才会显示。  
窗体显示后,你就可以输入新学生并点击OK将学生的数据转移到工作表。当你点击OK按钮时,就会 
执行cmdOK_Click过程。注意,你不能输入新学生参加的考试,因为多页控件的第二页(Exams)这 
时不可用。一旦新学生的数据被写入工作表,该窗体就会重新显示,你可以继续输入数据,或者你 
可以点击Cancel,将窗体从屏幕上清除。当你点击Cancel按钮时,就会执行过程cmdCancel_Click。  
3。 使用自定义窗体Students and Exams输入两位新学生的数据。任何时候,你都可以点击Active 
    选项按钮,从已有学生中上传数据。当你点击Active选项按钮时,标签Name Range和RefEdit 
    控件就变为可见的了。  
4。  点击Active选项按钮,然后点击RefEdit控件的减号按钮  
5。 选择工作表里的姓名区域,如图10…20所示。  

                                                                                               
图10…20 使用RefEdit控件,你可以选择包含你想要使用数据的单元格区域  
使用RefEdit控件,你可以选择工作表里的单元格区域,在本练习里,选择了包含学生姓和名的单 
元格。选择有效数据很重要,开始点击Last Name列标下面的单元格(B3)并且向下向右拖曳鼠标 
以至包括学生的名  

                                          212 

… 页面 229…

注意,当你使用RefEdit控件时,窗体临时被隐藏。你所选择的单元格出现在RefEdit控件上。点击 
RefEdit控件的减号按钮返回窗体。当你返回窗体时,过程refNames_Change正在运行,该过程使用 
单元格区域地址,将学生姓名填充到列表框控件里。该过程的最后一条语句调用 
lboxStudents_Change过程,确保窗体的文字框和复合框与列表框里所选学生姓名同步。列表框显 
示已有学生的姓名,被选学生的数据显示在左边的文字框和复合框里面(参见图10…21)  

                                                                                              
图10…21 窗体上的列表框是通过RefEdit控件将储存在工作表里的数据填充的  
6。 点击列表框里的任意姓名,并查看该学生的数据  
7。 点击列表框里的任意姓名,然后点击Exams页。  
Exams也显示了被选学生(参见图10…22)的姓名。TabStrip控件显示考试科目,如果被选学生参加 
过任何考试,当你点击适当科目页时,考试的日期和分数就会显示出来。  

                                                                                              
图10…22 Exams页显示被选学生和科目的考试日期和分数  
你可以通过提供的复合框和日历控件,输入或者更改学生的分数和考试日期。VB将问你是否修改数 
据(回顾Calendar1_Click和cboxGrade_Click过程的VBA代码)在你以确定回应对话框后,所选的 
数据或者分数就会写入到工作表中相应的列(参见图10…23)  
TabStrip1_Change过程确保你点击科目页的时候,VB会从适当的工作表单元格显示考试的分数和考 
试日期。MultiPage1_Change过程则确保当你点击Exams页时,lblWho标签显示当前列表框里选项学 
生的姓和名。  

                                          213 

… 页面 230…

                                                                                               
图10…23 工作表F到M列里的数据是通过用户窗体Students and Exams上Exams页输入的  

40。接下来……  

既然你到了这个相对比较长的章节的结尾,那么你已经有了必要的技巧来设计有用的窗体。我们来 
简单总结一下你在本章学习的内容。内置对话框可以从你自己的VBA过程里显示,对于需要用户输 
入的自定义VBA应用程序,就需要创建一个自定义窗体。通过设置tab键顺序,确保用户可以窗体上 
按逻辑顺序移动。在窗体模块里面编写VBA过程,让窗体对用户操作作出反应。通过使用属性窗口 
或者编写UserForm_Initialize过程,给控件设置初始值。确保有过程将数据转移到工作表。在下 
章里,当你开发集合和自定义对象主题的时候,将获得更多于自定义窗体实用的经验。  

                              第十一章 自定义集合和类模块  

在第九章,你学习了如果通过使用自动控制(Automation)控制另一个应用程序的对象,回想一下, 
在创建了对Microsoft Word 10。0 Object Library的引用之后,你就能够控制Word应用程序,调用 
其对象、属性和方法。你也学习了如何使用自动控制从Microsoft Outlook获取联系地址。有个好 
消息,那就是,你不必局限于使用Excel的内置对象或者其它应用程序的对象,VBA允许你创建你自 
己的对象和对象集合,以及它们完整的方法和属性。在本章,你将学习如何使用集合,包括如何声 
明自定义集合对象。你也将学习如何使用类模块来创建用户定义的对象。  
在跳入这些理论和实用的实例之前,我们来过一下一些本章将用到的术语吧:  
集合(Collection)—— 一个包含一组相关对象的对象  
类(Class)—— 对象的定义,包含其名称、属性、方法和事件。类充作一种对象模版,在允许的 
时候,由此创建对象示例。  
示例(Instance)—— 术语类的一种特定对象,称为类的示例。当你创建一个示例的时候,你也 
就创建了一个新对象,它拥有类定义的属性和方法。  
类模块(Class Module)—— 包含类定义的模块,包括它的属性和方法定义  
模块——模块含有Sub(子过程)和Function(函数)过程,可为其它VBA过程使用,并且和任何对 
象没有特别的关系。  
窗体模块——包含给由用户窗体或者其控件引发的事件过程使用的VBA代码。窗体模块是一种类模 
块。  
事件—— 一种可以为对象识别的对象,例如鼠标点击或者按键,你可以为其定义应对操作。事件 
可以由用户操作,或者VBA语句或者系统引发。  
事件过程—— 一个可以自动执行的过程,是对用户引发的事件或者系统引发的程序代码的反应。  

1。使用集合  

一组相类似的对象成为集合。例如,在Excel里,所有打开了的工作簿属于Workbooks集合,而某个 
具体工作簿里面的所有工作表都是Worksheets集合里面的成员。在Word里,所有打开的文档都属于 
Documents集合,一个文档里的每个段落都是Paragraphs集合的成员。集合是包含其它对象的对象。 
无论你想要使用什么集合,你都可以做下述事情:  
* 使用索引值可以引用集合里的特定对象,例如,要指向Worksheets集合里的第二个对象的话, 
    那么使用下述语句的任意一条:  
    Worksheets(2)。Select   
    或者  

                                          214 

… 页面 231…

    Worksheets(〃Sheet2〃)。Select   
* 使用Count属性可以知道集合里的成员数目,例如,当你在立即窗口里输入语句:  
    ?Worksheetsunt   
    VBA将会返回当前工作簿里的工作表总数  
* 使用Add方法可以在集合里插入新的项目,例如,当你在立即窗口里输入语句:  
    Worksheets。Add  
    VBA将会在当前工作簿里面插入一个新的工作表,这时,Worksheets集合里多了一个成员。  
* 使用For Each…Next循环可以遍历集合里的每个对象。假设你打开了一个工作簿,包含五个工 
    作表,它们的名称为:  
     “Daily wages”, “Weekly wages”, “Bonuses”, “Yearly salary”和“Monthly wages”。 
    使用下述过程将名称里包含“wages”的工作表删除:  
    Sub DeleteSheets()   
         Dim ws As Worksheet   
         Application。DisplayAlerts = False   
         For Each ws In Worksh
返回目录 上一页 下一页 回到顶部 1 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!