2011-05-17 65 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 

你需要通過做的是創造,它檢查,如果文件仍然存在該位。希望這可以幫助