修改代码,使其返回文件以及子目录

时间:2013-03-05 10:00:36

标签: excel vba excel-vba

我目前有这段代码:

Function GetSubDir(ByVal sPath As String, Optional ByVal sPattern As Variant) As Variant

Dim sDir As String
Dim sDirLocationForText As String

On Error GoTo Err_Clk

If Right$(sPath, 1) <> "\" Then sPath = sPath & "\"

If IsMissing(sPattern) Then
sDir = Dir$(sPath, vbDirectory)
Else
sDir = Dir$(sPath & sPattern, vbDirectory)
End If
Do Until LenB(sDir) = 0

If sDir <> "." And sDir <> ".." Then
sDirLocationForText = sDirLocationForText & ";" & sPath & sDir
End If
sDir = Dir$

Loop

If Left$(sDirLocationForText, 1) = ";" Then sDirLocationForText = 
Right(sDirLocationForText, Len(sDirLocationForText) - 1)
GetSubDir = sDirLocationForText

End Function

目前,当我调用此函数时,它会返回所有文件夹名称,这就是它的目的。但是,是否有一种简单的方法可以重做它以便返回文件名?提前谢谢。

My Workbook

1 个答案:

答案 0 :(得分:0)

如果您在这些行中使用vbNormal而不是vbDirectory,则应该获取文件:

If IsMissing(sPattern) Then
   sDir = Dir$(sPath, vbDirectory)
Else
   sDir = Dir$(sPath & sPattern, vbDirectory)
End If