题目一
用窗口选择/打开文件
Sub get方法()
Dim fname
fname = Application.GetOpenFilename()
'获取选择的文件名
If fname <> False Then
'判断是否有选中,如果点了取消,则退出程序
'否则运行文件
MsgBox fname
'返回字符串
Workbooks.Open fname
'这个过程才是打开
End If
End Sub
有不少可选参数可以设置
Sub get方法()
Dim fname
fname = Application.GetOpenFilename( _
filefilter:="EXCEL文件,*.xlsx;*.xlsm,全部,*", _
FilterIndex:=1, _
Title:="请选择一个文件", _
MultiSelect:=True)
'过滤器选择EXCEL文件或者全部文件
'默认选择的是第一个,EXCEL文件
'对话框的标题是"请选择一个文件"
'支持多选
If IsArray(fname) Then
'判断是否有选中,选中一个也是数组
For Each s In fname
MsgBox s
Workbooks.Open s
'这个过程才是打开
Next s
End If
End Sub
按住shift实现多选
同理,还可以用于保存
Sub save方法()
Dim fname, w As Workbook
Set w = ActiveWorkbook
fname = Application.GetSaveAsFilename( _
filefilter:="EXCEL文件,*.xlsx;*.xlsm,全部,*", _
FilterIndex:=1, _
Title:="请保存到硬盘", _
InitialFileName:="报表test.xlsm")
'过滤器选择EXCEL文件或者全部文件
'默认选择的是第一个,EXCEL文件
'对话框的标题是"请选择一个文件"
'默认保存名
If fname <> False Then
'判断是否有选中
MsgBox s
w.SaveAs fname
'这个过程才是保存
End If
End Sub
题目二
application.filedialog
msoFileDialogOpen | 文件打开对话框 | 可以直接执行 |
---|---|---|
msoFileDialogSaveAs | 文件保存对话框 | 可以直接执行 |
msoFileDialogFilePicker | 文件浏览对话框 | 不能直接执行 |