用EXCEL VBA获取指定目录下的文件名(包括文件夹名)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用EXCEL VBA获取指定目录下的文件名(包括文件夹名)相关的知识,希望对你有一定的参考价值。

参考技术A

1、首先利用快捷键“Windows键+R”打开“运行”窗口

2、接着输入“cmd”并点击“打开”

3、比如是需要复制输出c盘下的Progam Data中文件夹的名字

4、在命令窗口中输入“cd c:\\Progam Data”

5、点击“回车键”后出现下面情况

6、然后输入“dir /b>d:21.xls”命令并点击“回车键”

7、接着就在D盘出现名称为21的一个Excel表格

8、点击打开即可查看Progam Data中的文件夹名字都在Excel表格中,可以批量直接复制了

vba 遍历指定文件夹(含子目录)获取文件名,哪种方法速度最快?

vba 遍历指定文件夹(含子目录),哪种方法速度最快?请贴出代码(每行有注释)。

Sub LoopAllExcelFilesInFolder()
Dim wb As Workbook
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim FldrPicker As FileDialog

\'这里很关键,决定宏执行快慢的关键
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

\'打开目录选择框
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)

With FldrPicker
.Title = "请选择目录"
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myPath = .SelectedItems(1) & "\\"
End With

\'取消选择
NextCode:
myPath = myPath
If myPath = "" Then GoTo ResetSettings

\'指定过滤的文件后缀
myExtension = "*.xls*"

\'遍历全路径
myFile = Dir(myPath & myExtension)

\'循环处理每一个文件
Do While myFile <> ""
\'打开
Set wb = Workbooks.Open(Filename:=myPath & myFile)

\'确保工作簿被打开,在处理下一个文件时
DoEvents

\'设置背景色
wb.Worksheets(1).Range("A1:Z1").Interior.Color = RGB(51, 98, 174)

\'保存工作簿
wb.Close SaveChanges:=True

\'确保工作簿被关闭,在处理下一个文件时
DoEvents

\'接着处理下一个
myFile = Dir
Loop

\'提示处理完成
MsgBox "处理完成!"

ResetSettings:
\'恢复设置
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub
参考技术A Sub 选择文件夹()
Application.ScreenUpdating = False
With Application.FileDialog(msoFileDialogFolderPicker) '运行后出现标准的选择文件夹对话框
If .Show Then myPath = .SelectedItems(1) Else Exit Sub '如选中则返回=-1 / 取消未选则返回=0
End With
If Right(myPath, 1) <> "" Then myPath = myPath & ""
'返回的是选中目标文件夹的绝对路径,但除了本地C盘、D盘会以"C:"形式返回外,其余路径无""需要自己添加
Getfd (myPath)
Application.ScreenUpdating = True
End Sub
Sub Getfd(ByVal pth)
Dim Fn$, N%
Fn = Dir(pth & "\*.*")
While Fn <> ""
N = N + 1
Range("A" & N) = Fn
Fn = Dir
Wend
End Sub

以上是关于用EXCEL VBA获取指定目录下的文件名(包括文件夹名)的主要内容,如果未能解决你的问题,请参考以下文章

如何获取目录下的文件数(一行Python)

vba excel怎么获取指定工作表的行数、列数

vba 遍历指定文件夹(含子目录)获取文件名,哪种方法速度最快?

VBA获取某文件夹下所有文件和子文件目录的文件

请问用vba在excel表里指定内容转成文本一键自动发到指定的微信群上?求帮忙!

VBA批量合并表格