前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ExcelVBA文件操作-打开对话框取得文件夹路径2种方法

ExcelVBA文件操作-打开对话框取得文件夹路径2种方法

原创
作者头像
哆哆Excel
发布2023-02-24 08:36:25
5.2K0
发布2023-02-24 08:36:25
举报
文章被收录于专栏:哆哆Excel

ExcelVBA-打开对话框取得文件夹路径2种方法

Excel VBA自动化处理文件时,通常有这样的操作:

(1)打开文件对话框==>

(2)选中文件夹==>

(3)确定==>

(4)返回文件夹路径==>

(5)读取文件夹中的所有文件==>

(6)再进行其他操作

今天来学习其中的(1)-(4)

共有两种方式:

一、Application.FileDialog

语法:expression.FileDialog (fileDialogType)

MsoFileDialogType 可为下述常量之一:

msoFileDialogFilePicker。 允许用户选择文件。

msoFileDialogFolderPicker。 允许用户选择文件夹。

msoFileDialogOpen。 允许用户打开文件。

msoFileDialogSaveAs。 允许用户保存文件。

其中msoFileDialogFolderPicker就是用于打开文件夹的

【代码】

Sub FileDialog_sample1()

With Application.FileDialog(msoFileDialogFolderPicker)

.InitialFileName = ThisWorkbook.Path

.Title = "选择文件夹"

If .Show = True Then

Range("B1") = .SelectedItems(1) & "\"

Else

MsgBox "你选择了“取消”"

End If

End With

End Sub

【效果】

二、Shell.Application之BrowseForFolder

语法:set obj=CreateObject("Shell.Application").BrowseForFolder(s1, s2, s3, s4)

第一个为对话框的窗体句柄,一般设置为0;

第二个为打开窗体的说明,如上图中的“请选择上传文件夹”;

第三个参数控制打开的窗口中显示的内容以及窗体中某些元素的状态,如不显示“新建文件夹”;

第四个参数为可选参数,只要控制对话框中文件系统的根目录。缺省值为 0 指“桌面”。

如果设置了其他数据,将不能再打开其他文件夹,所以建议设置为0

【代码】

Sub yhd_BrowseFolders()

Dim objshell As Object

Dim objFolder As Object

Set objshell = CreateObject("Shell.Application") '后期绑定Shell.Application

'弹出对话框

Set objFolder = objshell.BrowseForFolder(0, "请选择文件夹", 0, 0)

If Not objFolder Is Nothing Then

Path = objFolder.Self.Path & "\"

Else

MsgBox "未选择文件夹,将退出"

Exit Sub

End If

Range("B1") = Path

Set objFolder = Nothing

Set objshell = Nothing

End Sub

【效果】

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档