Ich habe versucht, Daten aus anderen Arbeitsmappen in eine Master-Arbeitsmappe zu extrahieren. Alle diese Arbeitsmappen wurden in einem Ordner gespeichert. Außerdem würde vor dem Extrahieren der Daten die Anzahl der Dateien in dem Ordner überprüft werden. Wenn es nur eine Datei gibt und es sich um die Master-Arbeitsmappe handelt, wird sie angehalten und beendet.Excel-Makro-Laufzeit 1004 Dokument möglicherweise schreibgeschützt
Wenn ich jedoch das Makro lief, blieb es in der Schleife "Do While" hängen. Dann heißt es, dass es einen Laufzeitfehler 1004 hat, das Dokument kann schreibgeschützt oder verschlüsselt sein1.
Ich bin sicher, dass der Pfad korrekt ist.
Unten ist mein Code.
Sub LoopThroughDirectory()
Dim MyFile As String
Dim erow
Dim Filepath As String
Filepath = "C:\Users\uidq3022\Desktop\Backup_Version2.0_7_12\"
MyFile = Dir(Filepath)
Do While Len(MyFile) > 0
If MyFile = "Import Info.xlsm" Then
Exit Sub
End If
Workbooks.Open (Filepath & MyFile)
Range("F9,F12,F15,F19,F21").Select
Range("F21").Activate
ActiveWindow.SmallScroll Down:=9
Range("F9,F12,F15,F19,F21,F27,F30,F33,F37").Select
Range("F37").Activate
ActiveWindow.SmallScroll Down:=9
Range("F9,F12,F15,F19,F21,F27,F30,F33,F37,F41").Select
Range("F41").Activate
ActiveWindow.SmallScroll Down:=-27
Range("F9,F12,F15,F19,F21,F27,F30,F33,F37,F41,F6").Select
Range("F6").Activate
Selection.Copy
ActiveWorkbook.Close
erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination:=Worksheets("Sheet1").Range(Cells(erow, 1), Cells(erow, 11))
MyFile = Dir
Loop
End Sub
Und meine Fragen sind,
- Ich weiß nicht, wo ich schief gelaufen ist mit dem "Do while" Schleife
- Wie die Laufzeit 1004 Fehler zu beheben.
Kann mir jemand beraten? Danke vielmals!
Ich weiß nicht, wie ich das verpasst habe. Danke –
@ThomasInzina, es passiert mir auch. Ich wollte deine elegante Ein-Zeilen-Kopie + Paste nicht plagiieren. Wären Sie bereit, das wieder aufzusetzen? – MJA
Es ist nicht notwendig, es erneut zu veröffentlichen. Deine Lösung ist die richtige. ''wkbTarget.Worksheets (" Sheet1 "). Paste' Dies sollte Kopieren nicht einfügen sein. –