2016-06-16 14 views
0

Ich habe 2 Ordner Textdateien & Excelfiles, Sie haben den gleichen Dateinamen, aber mit unterschiedlichen Erweiterungen (für Text-Dateien = .txt & Excelfiles = .xlsx) zu finden, Ich schreibe ein Code, um zu ermitteln, ob eine Datei in textFiles in excelFiles nicht existiert, um eine Funktion aufzurufen, die sie erstellt.VBA vergleichen zwei Ordner, die differents Dateien

Sub LookForNew() 
Dim dTxt As String 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set filsTxt = fso.GetFolder("C:\txtFiles").Files 
Set filsExcel = fso.GetFolder("C:\excelFiles").Files 
Set oFileExcel = CreateObject("Scripting.Dictionary") 
Set tFileExl = CreateObject("Scripting.Dictionary") 
Set oFileExl = CreateObject("Scripting.Dictionary") 
For Each fil In filsTxt 
    dTxt = fil.Name 
    For Each exl In filsExcel 
     oFileExcel = exl.Name 
     oFileExl = Split(oFileExcel, ".") 
     tFileExl = oFileExl(0) 
     Next exl 
     If Not (tFileExl.Exists(dTxt)) Then 
      ' Call function 
     Else 
     MsgBox "No more files to convert" 
     End If 
Next fil 
Set fso = Nothing 

End Sub

Aber das Feld "oFileExcel" in meinem Code nicht ein Wörterbuch zurück, sondern einen String Hilfe plz

Antwort

0

Sie können einen Wert nicht den Weg weisen Sie oFileExcel = exl.Name tat, Sie muss oFileExcel.Add = exl.Name verwenden.

Werfen Sie einen Blick in die Dokumentation von dictionary:

Dim d     'Create a variable 
Set d = CreateObject(Scripting.Dictionary) 
d.Add "a", "Athens"  'Add some keys and items 
d.Add "b", "Belgrade" 
d.Add "c", "Cairo" 
...