2016-07-04 2 views
0

enter image description hereCount * PDF-Dateien in einem Ordner und aktualisieren benachbarten Spalte in Tabelle

Ich habe die folgende Excel-Tabelle, tracker.xls mit 2 Spalten: Kategorie und zählen.

Ich möchte ein Unterverzeichnis durchlaufen, das PDF-Dateien enthält, die der Kategorie-Spalte in meiner Tabelle entsprechen.

enter image description here

Das ist, was ich bisher gemacht habe, aber mein Code scheint nicht zu funktionieren:

Sub CV() 

    Function CVCount() 

     CategoryArray = Range("A2:A3") 
     CountArray = Range("B2:B3") 

     For i = 1 To UBound(CategoryArray) 

      For j = 1 To UBound(CategoryArray, 2) 

      'get name of category 

      Dim Category As String 
      Category = (myarray(i, j)) 
      FolderPath = Category + "\" 
      path = FolderPath & "\*.pdf" 
      Filename = Dir(path) 

       For k = 1 To UBound(CountArray) 

        For l = 1 To UBound(CountArray, 2) 

         'get count 

         Do While Filename <> "" 
          count = count + 1 
          Filename = Dir() 
         Loop 

         'assign count to cell 
         Range("").Value = count 

       Next k 

      Next j 

     Next i 

    End Function 

End Sub 

Ich kann nicht scheinen, um herauszufinden, wie eine Zählung zuweisen eine Zelle. Irgendwelche Ideen wie?

Antwort

1

Sie sind auf dem richtigen Weg, aber es ist viel einfacher als das:

Option Explicit 

Private Const baseFolder As String = "C:\Users\Hazel\Documents\Personal\Accounts\Childcare\" 

Sub countFiles() 

    Dim path As String 
    Dim fileName As Variant 
    Dim count As Integer 
    Dim i As Integer 

    i = 1 

    Do While Range("A" & i + 1).Value <> "" 

     count = 0 

     i = i + 1 
     path = baseFolder & Range("A" & i).Value & "\" 

     fileName = Dir(path) 

     Do While fileName <> "" 

      If UCase$(Right(fileName, 3)) = "PDF" Then count = count + 1 
      fileName = Dir() 

     Loop 

     Range("B" & i).Value = count 

    Loop 

End Sub 

Gerade ändern Sie die „basefolder“ Konstante Ihr Ausgangsverzeichnis übereinstimmen.

+0

Danke. Was ist, wenn im Startverzeichnis die xlsm-Datei gespeichert ist? Kann es nicht automatisch identifiziert werden? – methuselah

+1

Ja, benutze 'ActiveWorkbook.Path'. – Parfait