SORU
30 NİSAN 2012, PAZARTESİ


Klasörü kullanan bir VBA dosyaları döngü?

Üzerinden bir dizini kullanarak Excel 2010 Dosya döngü etmek istiyorum.

Döngü içinde ihtiyacım olacak

  • dosya adı, ve
  • tarih dosyası biçimlendirilmiş.

Aksi takdirde klasörü yok daha sonra 50 dosya varsa gayet iyi çalışıyor, aşağıdaki şifreledim, gülünç yavaş (^ile klasörleri ile çalışmak istiyorum . 10000 dosyaları). Bu kod tek sorun file.name aramak için bu işlem çok fazla zaman alır.

Bu çalışıyor ama waaaaaay çok yavaş (100 dosya başına 15 saniye) kod:


Sub LoopThroughFiles()
   Dim MyObj As Object, MySource As Object, file As Variant
   Set MySource = MyObj.GetFolder("c:\testfolder\")
   For Each file In MySource.Files
      If InStr(file.name, "test") > 0 Then
         MsgBox "found"
         Exit Sub
      End If
   Next file
End Sub

Sorun çözüldü:

  1. Benim sorunum zaman damgası komutunu kullanarak FileDateTime kontrol etmek için belirli bir şekilde Dir (15000 dosyaları için 20 saniye) kullanarak aşağıdaki çözüm ve çözüldü.
  2. 20 saniye aşağıdan dikkate alarak başka bir cevap daha az 1 saniye azalır.

CEVAP
30 NİSAN 2012, PAZARTESİ


Dir çok hızlı gibi görünüyor.

Sub LoopThroughFiles()
    Dim MyObj As Object, MySource As Object, file As Variant
   file = Dir("c:\testfolder\")
   While (file <> "")
      If InStr(file, "test") > 0 Then
         MsgBox "found " & file
         Exit Sub
      End If
     file = Dir
  Wend
End Sub

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dylan Dubay

    Dylan Dubay

    10 Temmuz 2013
  • K-391

    K-391

    23 EKİM 2012
  • SVB International

    SVB Internat

    29 EKİM 2011