作者:绿色风
分类:
时间:2022-08-18
浏览:118
楼主 水星钓鱼 |
社区里有很多帖子介绍了如何将某一文件夹下的所有文件名单列到一列单元格中,但是路径一般都需要手动修改代码才能够获得其它路径下的文件名。本例子取巧利用了“当前目录”的概念。通过用户自己选择,可以随时地提取某一路径下的所有文件名,不需要手动修改“路径代码”。请大家多多指正。
- Sub RetrieveFilename()
- '这是个提取某一路径下的所有文件的文件名的宏
- '通过调用**对话框路径可以由用户自行选择
- '其中利用了当前目录的概念
- Dim RowNum As Long
- Dim Filename As String
- Dim Filepath As String
- '弹出打开对话框,用户选择的路径即变为当前目录了
- Application.Dialogs(xlDialogOpen).Show
- Filepath = CurDir
- Filename = Dir(Filepath & "\*.*", vbHidden + vbReadOnly + vbSystem)
- Do While Filename <> ""
- Cells(RowNum + 1, 1) = Filename
- RowNum = RowNum + 1
- Filename = Dir
- Loop
- End Sub
关于当前目录的详解,请看草兄的解读INFO函数http://www.exceltip.net/thread-4625-1-1.html |
2楼 水星钓鱼 |
另一种是可以个性化设置的msoFileDialogFolderPicker对象。该对象可以自定义对话框的标题等。- Sub 提取文件名()
- '这是个提取某一目录内的所有文件的文件名的宏
- Dim 行号 As Long
- Dim 文件名 As String
- Dim 路径 As String
- Dim 选择路径对话框 As FileDialog
- Set 选择路径对话框 = Application.FileDialog(msoFileDialogFolderPicker)
- With 选择路径对话框
- .Title = "请选择你要操作的文件夹"
- .Show
- End With
- 路径 = 选择路径对话框.SelectedItems(1)
- 文件名 = Dir(路径 & "\*.*", vbHidden + vbReadOnly + vbSystem)
- Do While 文件名 <> ""
- Cells(行号 + 1, 1) = 文件名
- 行号 = 行号 + 1
- 文件名 = Dir
- Loop
- 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总版主之一