全民一起VBA实战篇 专题4 第一回  Get 方法弹出文件框,可选参数过滤目标名

 

相关知识点:

Application.GetOpenFilename方法:显示“文件打开”对话框,并将用户选中的文件名,作为一个字符串返回。如果用户点击“取消”按钮,则返回一个逻辑值False

GetOpenFilename(FileFilter,FilterIndex,Title,ButtonText,MultiSelect) 打开对话框

       FileFilter 文件过滤器,全部文件或某一类型文件;一个文件类型,()分号指定多个文件名格式

       FilterIndex 默认文件类型选项

       Title  弹出选择文件对话框的标题

       ButtonText 特定版本应用

MultiSelect 可以选择多文件同时打开; 如果MultiSelect为True,那么在判断用户是否按下“取消”按钮时,不能使用If fName<>False Then这种方式,应使用If IsArray(fName)=True Then ,或者将其直接简写为If IsArray(fName) Then

GetSaveFilename(InitialFilename,FileFilter,FilterIndex,Title,ButtonText) “另存为”对话框。

       InitialFilename 默认另存为文件名

       其他参数跟GetOpenFilename相似

GetOpenFilename和GetSaveFilename都只是返回字符串(或者数组),告知VBA用户选择了什么样的文件名。并不执行打开或保存文件等操作,需要用Workbook.open、Workbook.SaveAs、Open/Input、Line/Print等方法来实现文件操作功能。

例1 调用文件打开对话框

Sub demo()

       Dim fName ‘变体类型,无论GetOpenFilename有可能是字符串也可能是逻辑值

       fName=Application.GetOpenFilename()

       MsgBox fName  ‘返回打开文件的完整路径名

       Workbooks.Open fName

End Sub

 

例2 调用文件打开对话框,判断是否选择了文件,文件过滤器使用等参数

   

Sub demo1()

       Dim fName

       fName=Application.GetOpenFilename(_

FileFilter:=”文本,*.txt,工作簿,*.xlsx;*.xlsm,全部,*”,_

FilterIndex:=3,Title:=”请选择一个季度报表) ‘一个文件类型,分号指定多个文件名格式默认全部指定对话框标题

       If fName<>False Then

              MsgBox fName 

       End If    

End Sub

例3 调用文件打开对话框,多文件选择

   

Sub demo3()

       Dim fName, s  ‘s是数组

       fName=Application.GetOpenFilename(_

FileFilter:=”文本,*.txt,工作簿,*.xlsx;*.xlsm,全部,*”,_

FilterIndex:=3,Title:=”请选择一个季度报表”,MultiSelect:=True) ‘多文件选择

       If IsArray(fName) Then  ‘IsArray(x):如果变量x是个数组,返回True,否则False

              For Each s In fName

                     MsgBox fName 

              Next s    

       End If

End Sub

例4 调用文件另存为对话框,将当前活动工作簿保存在硬盘上,用户指定默认文件名

   

Sub demosaveas()

       Dim fName,  w as workbook

       Set w=ActiveWorkbook

       fName=Application.GetSaveAsFilename(_

InitialFileName:=”报表1.xlsx”, _

FileFilter:=”文本,*.txt,工作簿,*.xlsx;*.xlsm,全部,*”, _

FilterIndex:=2,Title:=”请将季度报表保存到磁盘”)

‘如果用户按下的不是取消按钮,则保存

‘GetSaveAsFilename只返回字符串或False,所以不使用IsArray

       If fName<>”” Then 

              w.SaveAs fName        

       End If

End Sub

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值