ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 通过选择路径来列出指定的目录下的所有文件名到一列单元格中

通过选择路径来列出指定的目录下的所有文件名到一列单元格中

作者:绿色风 分类: 时间:2022-08-18 浏览:118
楼主
水星钓鱼
社区里有很多帖子介绍了如何将某一文件夹下的所有文件名单列到一列单元格中,但是路径一般都需要手动修改代码才能够获得其它路径下的文件名。本例子取巧利用了“当前目录”的概念。通过用户自己选择,可以随时地提取某一路径下的所有文件名,不需要手动修改“路径代码”。请大家多多指正。

  1. Sub RetrieveFilename()
  2. '这是个提取某一路径下的所有文件的文件名的宏
  3. '通过调用**对话框路径可以由用户自行选择
  4. '其中利用了当前目录的概念
  5. Dim RowNum As Long
  6. Dim Filename As String
  7. Dim Filepath As String
  8. '弹出打开对话框,用户选择的路径即变为当前目录了
  9. Application.Dialogs(xlDialogOpen).Show
  10. Filepath = CurDir
  11. Filename = Dir(Filepath & "\*.*", vbHidden + vbReadOnly + vbSystem)
  12. Do While Filename <> ""
  13.     Cells(RowNum + 1, 1) = Filename
  14.     RowNum = RowNum + 1
  15.     Filename = Dir
  16. Loop
  17. End Sub

关于当前目录的详解,请看草兄的解读INFO函数http://www.exceltip.net/thread-4625-1-1.html
2楼
水星钓鱼
另一种是可以个性化设置的msoFileDialogFolderPicker对象。该对象可以自定义对话框的标题等。
  1. Sub 提取文件名()
  2. '这是个提取某一目录内的所有文件的文件名的宏
  3. Dim 行号 As Long
  4. Dim 文件名 As String
  5. Dim 路径 As String
  6. Dim 选择路径对话框 As FileDialog
  7. Set 选择路径对话框 = Application.FileDialog(msoFileDialogFolderPicker)
  8. With 选择路径对话框
  9.     .Title = "请选择你要操作的文件夹"
  10.     .Show
  11. End With
  12. 路径 = 选择路径对话框.SelectedItems(1)
  13. 文件名 = Dir(路径 & "\*.*", vbHidden + vbReadOnly + vbSystem)
  14. Do While 文件名 <> ""
  15.     Cells(行号 + 1, 1) = 文件名
  16.     行号 = 行号 + 1
  17.     文件名 = Dir
  18. Loop
  19. End Sub
3楼
天涯ge
点取消时要报错,稍微修改了下。。


Set 选择路径对话框 = Application.FileDialog(msoFileDialogFolderPicker)

With 选择路径对话框

    .Title = "请选择你要操作的文件夹"

If .Show <> -1 Then Exit Sub
End With

路径 = 选择路径对话框.SelectedItems(1)

文件名 = Dir(路径 & "\*.*", vbHidden + vbReadOnly + vbSystem)
If MsgBox("追加数据吗?", vbOKCancel, "请选择") = 1 Then
行号 = Range("A" & Rows.Count).End(xlUp).Row
Else
行号 = 1
Range("a:a").Clear
End If

Do While 文件名 <> ""

    Cells(行号 + 1, 1) = 文件名

    行号 = 行号 + 1

    文件名 = Dir

Loop

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap