Lasersword
Cadet 4th Year
- Registriert
- Jan. 2008
- Beiträge
- 123
Hallo CBler,
ich hab da mal wieder ein kleines Problem.
Ich würde gerne die aktuellste Datei in einem Ordner suchen.
Dafür habe ich auch schon eine Lösung gefunden (Dank Google).
Allerdings wurde ich das Makro gerne etwas optimieren.
Hier erstmal der Code:
Es wird also nach Änderungsdatum absteigend sortiert. Soweit verstehe ich das jetzt auch.
Da wir aber ggf. an einem Tag mehrere Dateien ablegen, diese aber nicht chronologisch sein müssen,
würde ich gerne nach Namen sortieren.
OK, hab mir gedacht, kann ja nicht so schwer sein:
Aber das funktioniert nicht.
"Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar."
Wo liegt der Fehler?
Habt ihr da eine Ahnung?
Vielen Dank im Voraus.
MfG,
Lasersword
ich hab da mal wieder ein kleines Problem.
Ich würde gerne die aktuellste Datei in einem Ordner suchen.
Dafür habe ich auch schon eine Lösung gefunden (Dank Google).
Allerdings wurde ich das Makro gerne etwas optimieren.
Hier erstmal der Code:
Code:
Const adVarChar = 200, adBigInt = 20, adDate = 7
Dim f As Object
Dim fsO As Object
Dim rsFiles As Object
Dim strPath As String
strPath = "O:\Test"
Set fsO = CreateObject("Scripting.FileSystemObject")
Set rsFiles = CreateObject("ADODB.Recordset")
rsFiles.Fields.append "Path", adVarChar, 255
rsFiles.Fields.append "Size", adBigInt
rsFiles.Fields.append "Date", adDate
rsFiles.Open
For Each f In fsO.GetFolder(strPath).Files
' fso.GetExtensionName (f) ' what is the extension of the file
rsFiles.AddNew
rsFiles("Path") = f.Path
rsFiles("Size") = f.Size
rsFiles("Date") = f.DateLastModified
Next
rsFiles.Sort = "Date DESC"
Set f = fsO.GetFile(rsFiles("Path"))
Workbooks.Open Filename:=strPath & "\" & f.Name, ReadOnly:=True, UpdateLinks:=0
Es wird also nach Änderungsdatum absteigend sortiert. Soweit verstehe ich das jetzt auch.
Da wir aber ggf. an einem Tag mehrere Dateien ablegen, diese aber nicht chronologisch sein müssen,
würde ich gerne nach Namen sortieren.
OK, hab mir gedacht, kann ja nicht so schwer sein:
Code:
Const adVarChar = 200, adBigInt = 20, adDate = 7, adName = 70
Dim f As Object
Dim fsO As Object
Dim rsFiles As Object
Dim strPath As String
strPath = "O:\Test"
Set fsO = CreateObject("Scripting.FileSystemObject")
Set rsFiles = CreateObject("ADODB.Recordset")
rsFiles.Fields.append "Path", adVarChar, 255
rsFiles.Fields.append "Size", adBigInt
rsFiles.Fields.append "Date", adDate
rsFiles.Fields.append "Name", adName
rsFiles.Open
For Each f In fsO.GetFolder(strPath).Files
' fso.GetExtensionName (f) ' what is the extension of the file
rsFiles.AddNew
rsFiles("Path") = f.Path
rsFiles("Size") = f.Size
rsFiles("Date") = f.DateLastModified
rsFiles("Name") = f.Name
Next
rsFiles.Sort = "Name DESC"
Set f = fsO.GetFile(rsFiles("Path"))
Workbooks.Open Filename:=strPath & "\" & f.Name, ReadOnly:=True, UpdateLinks:=0
Aber das funktioniert nicht.
"Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar."
Wo liegt der Fehler?
Habt ihr da eine Ahnung?
Vielen Dank im Voraus.
MfG,
Lasersword