2011-05-17 108 views
1

问题:
我需要知道哪些文件已放置在一系列文件夹中。我想要在每个文件夹中编录哪些文件,并且能够在不需要手动进入每个文件夹的情况下随时查看。一种将来自不同目录的多个文件“同步”到一个集中式目录,这样如果我从一个文件夹中删除一个文件,那么目录就会反映这个变化。Excel-VBA查找给定路径的pdf文件

我希望Excel可以帮助解决这个问题。总之我希望能够做到这一点:

Filename  FilePath      Exists 

abc_4.23.11 C:\4-23-11\abc_4.23.11.pdf *True/False* 

详情/假设:

主目录不会为一个文件来改变。所以文件“abc.pdf”将始终在同一个文件夹中。

假设文件夹1具有以下约定:

文件夹名称:文件夹1 mm-dd-yy (i.e 4-30-11)

内容:一系列其他的子文件夹,我们将调用这些使用字母等等文件夹A,文件夹B,文件夹C ...文件夹Z.

每个子文件夹里面都有一个pdf文件,我需要确认它在那里。

让我知道是否有任何问题。

非常感谢!

+0

看看[这个线程](http://stackoverflow.com/questions/1586169/how-do-i-know-when-a-file-has-been-modified-in-a-vba -macro)的一些想法。 – jonsca 2011-05-17 23:22:25

+0

不幸的是,我不认为Excel会帮助你。 – 2011-05-18 00:34:10

回答

1

这可能有助于入手:

Sub ListAllFiles() 
Dim fs As FileSearch, ws As Worksheet, i As Long 
Set fs = Application.FileSearch 
With fs 
    .SearchSubFolders = False ' if you want to search the sub folders also, set to true 
    .FileType = msoFileTypeAllFiles 'change this depending on the types of files you would like to filter 
    .LookIn = "C:\" 'this will be the search location 
    If .Execute > 0 Then 
     Set ws = Worksheets.Add 
     For i = 1 To .FoundFiles.Count 
      ws.Cells(i, 1) = .FoundFiles(i) 
     Next 
    Else 
     MsgBox "No files found" 
    End If 
End With 
End Sub 

你需要通过做的是创造,它检查,如果文件仍然存在该位。希望这可以帮助