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

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

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



使用FileDialogFilters集合的Add方法,你可以轻易地将你自己的过滤器添加到缺省的过滤器中 
去。下面修改后代工程ListFilters2示范了如何将临时文件(*。tmp)过滤器添加到过滤器清单中 
去。该过程里的最后语句将打开文件打开对话框,因此你自己可以检查自定义的过滤器是否已经被 
添加到了文件类型下拉列表框里。  
Sub ListFilters2()   
      Dim fdfs As FileDialogFilters   
      Dim filt As FileDialogFilter   
      Dim c As Integer   
      Set fdfs = Application。FileDialog(msoFileDialogOpen)。Filters   
      Sheets(3)。Cells(1; 1)。Select   
      Selection。Formula = 〃List of Default Filters〃   
      With fdfs   

                                          185 

… 页面 202…

           c = unt   
           For Each filt In fdfs   
                 Selection。Offset(1; 0)。Formula = filt。Description & _   
                      〃: 〃 & filt。Extensions   
                 Selection。Offset(1; 0)。Select   
           Next   
           MsgBox c & 〃 filters were written to Sheet3。〃  
           。Add 〃Temporary Files〃; 〃*。tmp〃; 1   
           c = unt   
           MsgBox 〃There are now 〃 & c & 〃 filters。〃 & vbCrLf _   
                & 〃Check for yourself。〃   
           Application。FileDialog(msoFileDialogOpen)。Show   
      End With   
End Sub   
你可以使用FileDialogFilters集合的Clear方法清除所有预设的过滤器。修改一下上面的过程,在 
添加自定义的临时文件(*。tmp)过滤器之前,清除内置的过滤器。  
当你从文件打开对话框里选择一个文件时,该被选择的文件名称和路径就会被放置在 
FileDialogSelectedItems集合里。使用SelectedItems属性可以返回FileDialogSelectedItems集 
合。通过设定FileDialog对象的AllowMultiSelect属性为True,用户就可以同时按下Shift键或者 
Ctrl键和文件名称,选择一个或多个文件。  
接下来的过程示范了如何使用上面提及的属性,该过程打开一个新的工作簿并且插入一个列表框控 
件。允许用户选择一个以上的文件,然后被选择的文件将加入到该列表框控件里,并且加亮第一个 
文件名。  
Sub ListSelectedFiles()   
     Dim fd As FileDialog   
     Dim myFile As Variant   
     Dim lbox As Object   
      Set fd = Application。FileDialog(msoFileDialogOpen)   
     With fd   
           。AllowMultiSelect = True   
           If 。Show Then   
                Workbooks。Add   
                 Set lbox = Worksheets(1)。Shapes。 _  
                      AddFormControl(xlListBox; _  
                      Left:=20; Top:=60; Height:=40; Width:=300)   
                 lboxntrolFormat。MultiSelect = xlNone   
                For Each myFile In 。SelectedItems   
                      lboxntrolFormat。AddItem myFile   
                Next   
                Range(〃B4〃)。Formula = _   
                      〃You've selected the following 〃 & _   
                      lboxntrolFormat。ListCount & 〃 files:〃   
                 lboxntrolFormat。ListIndex = 1   
           End If   
      End With   
End Sub   

                                          186 

… 页面 203…

                                                                                         
图10…6 使用过程ListSelectedFiles(见上面)将用户选择的文件添加到工作表中列表框控件中去  
注意,Show方法不会将用户所选的文件打开,它仅仅显示文件打开对话框。当用户点击“打开”按 
钮时,文件名称通过SelectedItems属性从SelectedItems集合里获得。如果你希望用户点击“打开” 
按钮时立即执行文件的打开操作的话,你就应该使用FileDialog对象的Execute方法。下面的过程 
示范了如何立即打开用户选择的文件:  
Sub OpenRightAway()   
      Dim fd As FileDialog   
      Dim myFile As Variant   
      Set fd = Application。FileDialog(msoFileDialogOpen)   
     With fd   
           。AllowMultiSelect = True   
           If 。Show Then   
                 For Each myFile In 。SelectedItems   
                      。Execute   
                Next   
           End If   
      End With   
End Sub   

2。GetOpenFilename 和 GetSaveAsFilename 方法  

从多年以前开始,Excel就给程序员们提供了两种方便的VBA方法来显示文件另存为和文件打开对话 
框:GetOpenFilename和 GetSaveAsFilename。这些方法只有在Excel里可用,并且在Excel2002里 
面如果需要向后兼容的话仍然可用。  
GetOpenFilename方法显示“打开”对话框,在那里你可以选择要打开的文件名称,第二个方法 
 (GetSaveAsFilename)则显示另存为对话框。  
1。 在立即窗口输入下面的指令:  
Application。GetOpenFilename   
Application。GetSaveAsFilename   
Application。GetSaveAsFilename (〃Plan2。xls〃)   
GetOpenFilename方法从用户处获得文件名称,而不必实际打开某特定的文件。该方法有四个可选 
的参数,经常使用的是第一和第三个参数,显示入下表:  

                                          187 

… 页面 204…

  
GetOpenFilename参数    描述  
fileFilter             该参数决定了对话框的文件类型(译者:原文为Save as type,有误) 
                       下拉框了的内容。例如,要在文件类型下拉框里显示“Excel  
                       Files(*。xls)”的话,你就应该输入下列文本作为fileFilter: “Excel  
                       Files(*。xls); *。xls”(译者:“Excel Files; *。xls”也一样。)过 
                       滤器的前面部分(逗号前)决定文件类型下拉框要显示的文本,第二部 
                       分(逗号后)明确你要显示的那种类型的文件。确保你按照表格里的例 
                       子试验一下。  
title                  这是对话框的标题,如果忽略,对话框将显示标题为“打开”  
  
在立即窗口里输入下列语句(确保在一行输入),来看看这些参数是如何使用的:  
Application。GetOpenFilename(〃Excel Files(*。xls); *。xls〃);;〃Highlight the File〃   
GetOpenFilename方法返回所选的或者指定的文件名称,该名称之后可以在你的VBA过程里用来打开 
该文件,例如:  
yourFile = Application。GetOpenFilename   
?yourFile   
C:EXCELMark。xls   
Workbooks。Open Filename:=yourFile   
在上面的例子里,文件名称被赋予变量yourFile,接下来的两条输入为询问文件名称(?yourFile) 
和显示该名称(C:EXCELMark。xls)。第四条语句打开变量yourFile明确的文件。如果你通过点击 
Esc键或者对话框上的取消按钮来取消对话框的话,那么GetOpenFilename方法就会返回False。  
GetSaveAsFilename方法返回文件名和路径,然而,它不会自动地保存该特定的文件。输入下述指 
令提供文件名称:  
Application。GetSaveAsFilename (〃Plan2。xls〃)   
如果你忽略文件名称的话,Excel就会显示当前活动文件的名称。当你使用GetSaveAsFilename方法 
时,你可以明确文件过滤器和对话框自定义标题:  
yourFile    =   Application。GetSaveAsFilename(“Plan2。xls”;    〃Excel    Files(*。xls);  
*。xls〃;;〃Name your file〃)   
要显示另存为对话框的话,就要将GetSaveAsFilename方法的结果赋予一个变量,如上所示。  

3。创建窗体  

尽管内置的对话框很方便使用,但是它并不能满足你所有的VBA应用程序的要求。除了将对话框显 
示在屏幕上和初始化它的设置之外,你不能控制对话框的外观,你不能决定增加哪个按钮,删除哪 
个按钮,而哪个又移动,同样,你不能改变内置对话框的大小。如果你想用提供一个自定义的界面 
的话,那么你的唯一办法就是创建一个用户窗体。  
用户窗体看上去就像一个自定义对话框,你可以在上面添加各种各样的控件,给这些控件设置属性 
以及编写对窗体反应的VBA过程和控制事件。窗体是单独的对象,你可以在VB编辑器菜单里选择“插 
入”|“用户窗体”来添加窗体。  
窗体可以在不同的应用程序之间分享使用,例如,你可以在Word或者任何其它使用VB编辑器的应用 
程序里面,重新使用Excel里设计的窗体。  
按照下述步骤创建自定义窗体:  
* 切换到VB编辑器窗口  
* 选择“插入”|“用户窗体”  
一个叫做窗体的文件夹显示在工程浏览器窗口,该文件夹包含一个空白用户窗体。工作区域自动显 
示窗体和带有添加控件的工
返回目录 上一页 下一页 回到顶部 1 1
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!