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

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

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



   过程UserForm_Initialize调用外部过程(ListHardware)用硬件成员来填充它的列表框控件。  
5。 激活ShowSurvey模块并且输入过程ListHardware,如下所示:  
   Sub ListHardware()   
         With InfoSurvey。lboxSystems   
              。AddItem 〃CD…ROM Drive〃   
              。AddItem 〃Printer〃   
              。AddItem 〃Fax〃   

                                         202 

… 页面 219…

               。AddItem 〃Network〃   
               。AddItem 〃Joystick〃   
               。AddItem 〃Sound Card〃   
               。AddItem 〃Graphics Card〃   
               。AddItem 〃Modem〃   
               。AddItem 〃Monitor〃   
               。AddItem 〃Mouse〃   
               。AddItem 〃Zip Drive〃   
               。AddItem 〃Scanner〃   
         End With   
    End Sub   
    既然你已经准备好了UserForm_Initialize过程和ListHardware过程,那么你可以运行窗体查看 
    结果了。  
6。 在工作表Info Survey,使用Survey按钮来启动窗体,窗体显示后,用户选择合适的选项或者点 
    击Cancel按钮。当用户点击Software选项按钮时,下面的列表框应该显示不同的项目,同时, 
    图像控件应该上载一个不同的图片。下一节将解释如何编写这些事件。  

30。编写过程填充列表框控件  

在前面的部分,你准备了ListHardware过程用Hardware成员来填充lboxSystems列表框,你可以使 
用同样的方法将Software项目上载到该列表框。  
1。 激活ShowSurvey模块,并输入过程ListSoftware代码,如下所示:  
    Sub ListSoftware()   
         With InfoSurvey。lboxSystems   
               。AddItem 〃Spreadsheets〃   
               。AddItem 〃Databases〃   
               。AddItem 〃CAD Systems〃   
               。AddItem 〃Word Processing〃   
               。AddItem 〃Finance Programs〃   
               。AddItem 〃Games〃   
               。AddItem 〃Accounting Programs〃   
               。AddItem 〃Desktop Publishing〃   
               。AddItem 〃Imaging Software〃   
               。AddItem 〃Personal Information Managers〃   
         End With   
    End Sub   

31。编写过程控制选项按钮  

1。 激活窗体InfoSurvey,并双击位于Main Interest框架里的Software选项按钮  
2。  当代码窗口出现optSoft_Click过程构架的时候,选中该代码并按下Delete键  
3。 点击右上角的复合框向下箭头,并且选择Change事件过程,VB将会自动为你输入optSoft_Change 
    过程的开头和结尾  
4。 输入optSoft_Change过程代码,显示如下:  
    Private Sub optSoft_Change()   
         Me。lboxSystems。Clear   
         Call ListSoftware   
         Me。lboxSystems。ListIndex = 0   
         Me。picImage。Picture = LoadPicture(〃C:Books。bmp〃)   
    End Sub   
    过程optSoft_Change开始时,使用Clear方法将列表框lboxSystems的当前成员列表清除,下一 
    条语句调用ListSoftware过程用软件成员来填充列表框,换句话说,当用户点击Software按钮 
    时,程序将硬件成员清除然后添加软件成员。如果你在添加新成员之前,不清除列表框的话, 
                                          203 

… 页面 220…

    这些新成员就会附加在当前清单后面。语句Me。lboxSystems。ListIndex = 0选择列表里的第一 
    条成员。该过程里的最后一条语句为图像控件上载图片文件,请确保换上你电脑里有效图片的 
    完整路径。  
    因为用户在选择Software按钮之后,还可能要重新选择Hardware按钮,所以,你必须给optHard 
    选项按钮创建一个类似的Change事件过程。  
5。 在optSoft_Change过程下面,输入下述过程optHard_Change:  
   Private Sub optHard_Change()   
         Me。lboxSystems。Clear   
         Call ListHardware   
         Me。lboxSystems。ListIndex = 0   
         Me。picImage。Picture = LoadPicture(〃C:cd。bmp〃)   
    End Sub   
6。 点击工作表Info Survey里的按钮Survey启动窗体来查看结果。当你点击Software选项按钮时, 
    你应该看到列表框里的软件成员,同时,图像控件也应该显示了相应的图片。点击Hardware选 
    项按钮后,列表框应该显示适当的硬件成员,同时,图像控件应该显示一张不同的图片。  
7。 点击窗体右上角的关闭按钮,关闭该窗体  

32。编写过程同步文字框和旋转按钮  

Info Survey窗体在旋转按钮前面有个文字框,用户可以直接在文字框里输入或者使用旋转按钮, 
在文字框里表明Hardware或者Software成员使用的百分率。文字框的初始值为0,假设用户输入了 
10,现在要用旋转按钮将它增加到15。要激活这个动作的话,那么该文字框和旋转按钮必须得同步。 
每个对象需要有一个单独的Change事件过程。  
1。 在旋转按钮上单击右键,并选择快捷菜单上的查看代码  
2。 输入过程spPercent_Change过程,如下所示:  
   Private Sub spPercent_Change()  
         txtPercent。Value = spPercent。Value   
    End Sub   
    使用旋转按钮将会导致文字框数值增加或减少。  
3。 输入下述过程txtPercent_Change:  
   Private Sub txtPercent_Change()   
         Dim entry As String   
         On Error Resume Next   
         entry = Me。txtPercent。Value   
         If entry 》 100 Then   
               entry = 0   
               Me。txtPercent。Value = entry   
         End If   
         spPercent。Value = txtPercent。Value   
    End Sub   
    过程txtPercent_Change确保只有从0到100之间的数值可以输入在文字框里,该过程使用了On  
    Error Resume Next语句来忽略错误数据的输入。如果用户输入了一个非数字数据(或者大于100 
    的数字),VB将会将文字框的值重新设置为0。每次点击旋转按钮,文字框里的数字将会增加或 
    者减少1。  

33。编写过程关闭用户窗体  

显示窗体之后,用户可能需要通过按Esc键或者点击Cancel按钮来取消窗体,可以准备一个使用Hide 
方法的简单过程,让窗体从屏幕上消失。  
1。 双击Cancel按钮,并且输入下述过程cmdCancel_Click:  
   Private Sub butCancel_Click()   
         Me。Hide   
    End Sub   
                                          204 

… 页面 221…

    方法Hide将对象隐藏,但是不从内存里清除它。这样,当用户看不到窗体的时候,你的VBA过程 
    仍然可以在屏幕后面使用该窗体的对象和属性。使用Unload方法可以将窗体从屏幕上卸退并且 
    从内存里清除:  
    Unload Me  
当窗体卸退后,所有相关的内存都会被收回,用户不能再和窗体相互交流了,窗体的对象也不能为 
你的VBA过程访问了,除非使用Load语句再将窗体放置于内存里。  

34。转移窗体数据到工作表  

当用户点击OK按钮,窗体的选择应该写入工作表中,用户就可以通过点击Cancel按钮随时退出窗体。  
1。 双击OK按钮,并输入过程cmdOK_Click,如下所示:  
    Private Sub butOK_Click()   
         Me。Hide   
         r = ApplicationuntA(Range(〃A:A〃))   
         Range(〃A1〃)。Offset(r + 1; 0) = Me。lboxSystems。Value   
         If Me。optHard。Value = True Then   
               Range(〃A1〃)。Offset(r + 1; 1) = 〃*〃   
         End If   
         If Me。optSoft。Value = True Then   
               Range(〃A1〃)。Offset(r + 1; 2) = 〃*〃   
         End If   
         If Me。chkIBM。Value = True Then   
               Range(〃A1〃)。Offset(r + 1; 3) = 〃*〃   
         End If   
         If Me。chkNote。Value = True Then   
               Range(〃A1〃)。Offset(r + 1; 4) = 〃*〃   
         End If   
         If Me。chkMac。Value = True Then   
               Range(〃A1〃)。Offset(r + 1; 5) = 〃*〃   
         End If   
         Range(〃A1〃)。Offset(r + 1; 6) = Me。cboxWhereUsed。Value   
         Range(〃A1〃)。Offset(r + 1; 7) = Me。txtPercent。Value   
         If Me。optMale。Value = True Then   
               Range(〃A1〃)。Offset(r + 1; 8) = 〃*〃   
         End If   
         If Me。optFemale。Value = True Then   
               Range(〃A1〃)。Offset(r + 1; 9) = 〃*〃   
         End If   
         Unload Me   
    End Sub  
    过程butOK_Click以隐藏用户窗体开始。语句:  
    r = ApplicationuntA(Range(〃A:A〃))  
使用了VB函数CountA来计算A列里含有数据的单元格数目,函数的结果被赋予变量r。下一句:  
    Ran
返回目录 上一页 下一页 回到顶部 1 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!