2012-07-02 113 views
1

我有一个遍历文件夹的宏,并使用“dir”功能查找活动文件夹中是否存在文件,并将文件名放入单元格中。使用dir搜索文件 - 多个匹配

问题是,它可能是两个或更多文件满足搜索。

Dir(subfolder & "\Kommunesvar*") 

如果有两个文件以“Kommunesvar”开头,我该如何在指定的子文件夹中同时得到两个结果? Dir返回文件名,但我想都是。

回答

2

你是怎么用DIR的。以下代码将为您提供以Kommunesvar开头并且是Excel文件的所有文件。

Option Explicit 

Sub Sample() 
    Dim subfolder As String 
    Dim sDir 

    subfolder = "C:\Temp" 

    sDir = Dir$(subfolder & "\Kommunesvar*.xls*", vbNormal) 

    Do Until LenB(sDir) = 0 
     Debug.Print subfolder & sDir 
     sDir = Dir$ 
    Loop 
End Sub 

如果您想要将所有文件名存储在一个变量中,那么您也可以使用它。

Sub Sample() 
    Dim subfolder As String, FileNames As String 
    Dim sDir 

    subfolder = "C:\Temp" 

    sDir = Dir$(subfolder & "\Kommunesvar*.xls*", vbNormal) 

    Do Until LenB(sDir) = 0 
     If FileNames <> "" Then 
      FileNames = FileNames & "; " & subfolder & sDir 
     Else 
      FileNames = subfolder & sDir 
     End If 
     sDir = Dir$ 
    Loop 

    Debug.Print FileNames 
End Sub 
+0

这是完美:)我需要一个宏来遍历260个文件夹,并创建一个超链接到满足指定字符串的每个文件,在对应活动文件夹的行中。像现在的魅力一样工作:) –