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

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

作者头像
哆哆Excel
发布2023-09-09 10:45:05
1.7K0
发布2023-09-09 10:45:05
举报
文章被收录于专栏:哆哆Excel

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

(1)打开文件对话框==>(2)选中文件夹==>(3)确定==>(4)返回文件夹路径==>(5)读取文件夹中的所有文件==>(6)再进行其他操作

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

=====共有两种方式:=====

一、Application.FileDialog

语法:expression.FileDialog(fileDialogType)

MsoFileDialogType可为下述常量之一:msoFileDialogFilePicker。 允许用户选择文件。msoFileDialogFolderPicker。 允许用户选择文件夹。msoFileDialogOpen。 允许用户打开文件。msoFileDialogSaveAs。 允许用户保存文件。

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

【代码】

代码语言:javascript
复制
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

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

第一个为对话框的窗体句柄,一般设置为0;第二个为打开窗体的说明,如上图中的“请选择上传文件夹”;第三个参数控制打开的窗口中显示的内容以及窗体中某些元素的状态,如不显示“新建文件夹”;第四个参数为可选参数,只要控制对话框中文件系统的根目录。缺省值为 0 指“桌面”。

【第四个参数】详解

注意:如果设置了其他数据,将不能再打开其他文件夹,

所以建议设置为0

【代码】

代码语言:javascript
复制
Sub yhd_BrowseFolders()
    Dim objshell As Object
    Dim objFolder As Object
    '后期绑定Shell.Application
    Set objshell = CreateObject("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

【效果】

=========================

以上两种方法均可取到像这样:

“C:\Users\Administrator\Desktop\练习文件\PQ\”

的文件夹路径,注意要 & "\"的哦,

接下来我们就可能进行下一步的读取文件列表的工作啦

个人感觉Application.FileDialog比较好用

今天记录到此吧,如果有用请转发,让更多人学习到。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

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