Sortierung führt zum Laufzeitfehler
Frank
kurz zur Erläuterung. Ich wähle einen Ordner aus in dem sich auch Unterordner befinden. In diesen Unterordnern liegen Dateien die nun dem Datum nach eingelesen werden. Rudi Maintaire war so lieb und hat einen Sortiercode zur Verfügung gestellt. Vielen Dank dafür an dieser Stelle. Nun funktioniert der Code aber nur, wenn ich einen Unterordner auswähle. Ansonsten kommt es zum Laufzeitfehler 9, Index außerhalb des gültigen Bereichs. Das heißt wähle ich den Hauptordner, wird für arrlist nichts übergeben. Kann mir jemand sagen wieso das so ist bzw. wie man das Problem behebt? Anbei der Code von Rudi:
Vielen Dank und viele Grüße,
Frank
Private Sub SearchFiles(strFolder As String, strFileName As String, Optional blnTMP As Boolean = _
_
_
True)
Dim objFolder As Object
Dim objFile As Object
Dim objFSO As Object
Dim lngFirst As Long
'Dim arrlist As Long
lngFirst = lngCount
Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objFile In objFSO.GetFolder(strFolder).Files
If objFile.Name Like strFileName Then
ReDim Preserve strList(lngCount)
strList(lngCount) = objFile.Path
lngCount = lngCount + 1
End If
Next
SortierMich strList, lngFirst
If blnTMP = True Then
For Each objFolder In objFSO.GetFolder(strFolder).SubFolders
SearchFiles strFolder & "\" & objFolder.Name, strFileName
Next objFolder
End If
End Sub
Private Sub SortierMich(arrlist, lngFirst)
Dim i As Integer, j As Integer, strTmp As String
For i = lngFirst To UBound(arrlist)'hier bricht es ab
For j = (i + 1) To UBound(arrlist)
If StrComp(arrlist(i), arrlist(j), 0) = 1 Then
strTmp = arrlist(j)
arrlist(j) = arrlist(i)
arrlist(i) = strTmp
End If
Next
Next
End Sub