3.2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von snailhouse Mitglied (179 Punkte)
Hallo zusammen,

neuerdings tritt bei einem bereits sehr oft einwandfrei gelaufenen Makro folgender Fehler auf:

Ich suche mir mit "Filesearch" bestimmte Dateien, öffne diese anschließend nacheinander, lese jeweils bestimmte Informationen aus, die in einer weitereren Datei zusammengefasst werden, und schließe die Datei wieder.

Beim Auftreten des Fehlers wurden bereits 2202 Dateien verarbeitet, 1386 wären noch zu bearbeiten (Fehler trittt nich immer in dieser Situation bzw. nicht immer bei der gleichen Datei auf).

Dann erhalte ich die Fehlermeldung:
"Objektbibliothek nicht registriert" und
Laufzeitfehler 1004: Die Methoder 'Open' für das Objekt 'Workbooks' is fehlgeschlagen.

Ein Blick in die Verweise zeigt, dass eigentlich alle notwendigen Bibliotheken verfügbar sind:
Visual Basic for Applications
Microsoft Excel 1.0 Object Library
OLE Automation
Microsoft Office 11.0 Object Library
Microsoft Forms 2.0 Object Library
Microsoft DAO 3.6 Object Library

Allerdings sehe ich nicht wie üblich alle anderen Verweise, die noch wählbar wären, sondern eben nur die oben genannten.

Der Rechner ist extrem träge und letzendlich bleibt nur, den Rechner neu zu starten, um weiterarbeiten zu können.

Hat jemand eine Ahnung, an was das liegen könnte ??

Softwarestand: MS Office Excel 2003 mit SP3

Jetzt schon 'mal vielen Dank !

Gurß
Jürgen

2 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi juergen ^^

ich vermute fehlerhafte registry :-)

ist gleich deine chance windows 7 kompatible zu werden :-))

gruss nighty

folgender code mit filesearch ist windoes 7 feindlich ^^

Sub FilesListen()
Dim Dateien As Integer
Dim DateiName As String
With Application.FileSearch
.NewSearch
.LookIn = "D:\Temp\"
.SearchSubFolders = False
.Filename = "*.xls"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
If DateiName <> ThisWorkbook.Name Then
Workbooks.Open Filename:=.FoundFiles(Dateien)
'Dein Code
Workbooks(DateiName).Close
End If
Next Dateien
End If
End With
End Sub


folgender code ist windows 7 freundlich

benutz doch diesen einfach und du bist wieder Taufrisch auf dem laufenden :-)))

Sub DateienLesen()
Dim DateiName As String
DateiName = Dir("C:\Temp\" & "*.xls")
Do While DateiName <> ""
If ThisWorkbook.Name <> DateiName Then
Workbooks.Open Filename:="C:\Temp\" & DateiName
'Dein Code
Workbooks(DateiName).Close
End If
DateiName = Dir
Loop
End Sub
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi juergen ^^

da bin ich gespannt ob es mit dem alternativcode auch zu deinem genannten fehler kommt,ausserdem wer heute noch filesearch benutzt muss ja schon bald ueber hundert jahre alt sein *hihi*

gruss nighty
...