图(1)
熟悉CMD脚本的程序员都知道,使用Dir命令可以轻松获取文件的完整路径,但在VBA中使用Dir函数我们只能获取到文件的名称,如果要获取完整路径则需要在文件名称前加上当前目录的路径。例如,我们要获取上图(1)文件路径下的txt文件,获取过程代码如下:
Sub GetFilesPath()
'
' 使用DIR函数获取指定类型文件的完整路径(不含子目录)
'
Dim fileStyle As String
Dim filePath As String
Dim fileName As String
Dim fileList As String
Dim fileNum As Integer
fileStyle = "txt" ' 指定文件类型(扩展名)
filePath = "D:\Users\Hero\Desktop\办公室"
fileName = Dir(filePath & "\*." & fileStyle) ' 获取文件的名称(第一个)
While fileName <> ""
fileNum = fileNum + 1
If Len(fileList) = 0 Then
fileList = filePath & "\" & fileName ' 获取完整的文件路径
Else
fileList = fileList & vbCrLf & filePath & "\" & fileName
End If
fileName = Dir() ' 获取下一个文件的名称
Wend
Debug.Print fileList ' 打印文件路径(到立即窗口)
Debug.Print "执行完毕!总共有" & fileNum & "个" & fileStyle & "文件"
End Sub
图(2)
使用以上方法你只需要重新定义filePath和fileStyle变量的值即可, 获取结果是不包含子目录文件的,此获取方法比较简单,AI也能轻松编写出来,下一篇文章我将向大家介绍如何获取子目录下的文件,程序设计思路比较特别,我花了几乎半个月才研究出来,目前所有的AI都还无法做到。