ich möchte per VBA jede Datei eines Ordners mit jeder anderen Datei dieses Ordners vergleichen - aber es klappt nicht.
Als Vorübung (!) habe ich eine Prozedur geschrieben, in der für jede Datei eines Ordners der Name jeder anderen Datei ausgegeben werden soll. Doch dabei erhalte ich eine Fehermeldung, die mir unbegreiflich ist. Hier der VBA-Code:
Private Sub dateien_vergleichen()
Dim sPath As String
Dim sAusgangsdatei As String
Dim sVergleichsdatei As String
sPath = "C:\Test\"
' ggf. abschließenden Backslash anfügen
If Right$(sPath, 1) <> "\" Then sPath = sPath & "\"
' erste Ausgangsdatei ermitteln
sAusgangsdatei = Dir$(sPath & "*.*", vbNormal Or vbHidden Or vbSystem Or vbReadOnly)
Do While Len(sAusgangsdatei) > 0 ' Kopf-Schleife über alle Dateien des Ordners
If InStr(1, "..", sAusgangsdatei, vbBinaryCompare) = 0 Then
' erste Vergleichsdatei ermitteln
sVergleichsdatei = Dir$(sPath & "*.*", vbNormal Or vbHidden Or vbSystem Or vbReadOnly)
Do While Len(sVergleichsdatei) > 0 ' Kopf-Schleife über alle Dateien des Ordners
If InStr(1, "..", sVergleichsdatei, vbBinaryCompare) = 0 Then
If sVergleichsdatei <> sAusgangsdatei Then
Ausgangsdatei und Vergleichsdatei gegenüberstellen:
Debug.Print "Ausgangsdatei: " & sAusgangsdatei & vbTab & "Vergleichsdatei: " & sVergleichsdatei
End If
End If
' Nächste Vergleichsdatei ermitteln - klappt wunderbar!
sVergleichsdatei = Dir$()
Loop
End If
' Nächste Ausgangsdatei ermitteln - doch hier kommt die Fehlermeldung !!!
sAusgangsdatei = Dir$()
Loop
End Sub
Also: ein und dieselbe Funktion funzt in der Binnen-Schleife - funzt aber nicht in der Außen-Schleife. Ich kapiere nicht, wieso.
Ja, vielleicht könnt Ihr mir verraten, wo der Fehler liegt.
Und für die ganz schlauen unter Euch - vielleicht könnt ihr mir sogar einen Hinweis geben, wie ich den Code erweitern muß, damit ich auch die Ausgangsdatei im Ausgangsordner mit jeder Datei in jedem Unterverzeichnis dieses Ordners vergleichen kann.
Herzlichen Dank im Voraus!
Einen guten Start in die neue Woche wünscht Euch
Ben.