Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Kill .FoundFiles?

Betrifft: Kill .FoundFiles? von: Robert
Geschrieben am: 17.08.2004 10:52:24

Hallo,

ich lese mit Application.FileSearch alle Dateien in einem Vereichnis aus und möchte diese in einer For- Next Schleife löschen. Ich kann das Objekt .FoundFiles(i) zwar auslisten (also z.B. mit MsgBox ansprechen), mit Kill geht jedoch nichts. (Kill .FoundFiles(i) gibt einen Laufzeitfehler 53 - Datei nicht gefunden zurück) Woran kanns liegen?

Danke schon mal im Voraus für Eure Antworten.

Robert

  


Betrifft: AW: Kill .FoundFiles? von: Hans W. Herber
Geschrieben am: 17.08.2004 10:55:54

Hallo Robert,

durch das Killen verschiebt sich der Listenindex, vermute ich mal. Ich würde die FoundFiles in ein Array einlesen und dieses dann mit Kill abarbeiten.

Gruss hans


  


Betrifft: AW: Kill .FoundFiles? von: Robert
Geschrieben am: 17.08.2004 11:49:01

Hallo Hans,

danke für die rasche Antwort. Habe folgendes versucht:

For i = 1 To .FoundFiles.Count
Datei(i) = CVar(.FoundFiles(i))
Kill Datei(i)
Next i

Das Problem bleibt dasselbe.

Robert


  


Betrifft: AW: Kill .FoundFiles? von: ChrisL
Geschrieben am: 17.08.2004 12:52:26

Hi Robert

Versuch es in zwei Schritten. Erste Schleife einlesen und in einer separaten Schleife löschen.

Gruss
Chris


  


Betrifft: AW: Kill .FoundFiles? von: Hans W. Herber
Geschrieben am: 17.08.2004 14:08:04

... ja, Chris hat recht, das hatte ich gemeint:
Sub ListDelete()
   Dim arr() As String
   Dim iFile As Integer
   With Application.FileSearch
      .NewSearch
      .LookIn = "c:\temp"
      .Filename = "*test*.xls"
      .Execute
      ReDim arr(1 To .FoundFiles.Count)
      For iFile = .FoundFiles.Count To 1 Step -1
         arr(iFile) = .FoundFiles(iFile)
      Next iFile
   End With
   For iFile = 1 To iFile - 1
      Kill arr(iFile)
   Next iFile
End Sub

gruss hans


  


Betrifft: AW: Kill .FoundFiles? von: Robert
Geschrieben am: 17.08.2004 14:13:20

Danke!

Das Problem war aber ein anderes. Ein Dateiname "~$..." konnte offenbar nicht angesprochen werden.

Robert


  


Betrifft: AW: Kill .FoundFiles? von: Hans W. Herber
Geschrieben am: 17.08.2004 14:16:37

... das mag sein, dass das dazukam, war ja für mich auch kaum zu ahnen. Aber auch ohne das hätte die Routine nicht funktioniert.

gruss hans


  


Betrifft: AW: Kill .FoundFiles? von: IngoG
Geschrieben am: 17.08.2004 11:01:25

Hallo Robert,

oder wie immer beim löschen

for i = .foundfiles.count to 1 step -1
Kill .FoundFiles(i)
next i

wenn am index liegt sollte das funzen, da du ja von hinten nach vorne löschst

Gruß Ingo