Excel 2010'da VBA kullanan uzak bir sunucudaki bir klasördeki dosya adlarının bir koleksiyonunu almam gerekiyor. İşleyen bir işlev var ve çoğu durumda bu işi yapacak, Ancak uzak sunucu sık sık ağ performans sorunları korkunç. Bu da demek oluyor ki, isimleri bir koleksiyona koymak için 300 dosya ile 10 dakika sürebilir, klasördeki dosyaların sayısı binlerce büyüyebilir, bu yüzden bu işe yaramaz, tüm dosya isimlerini almanın bir yoluna ihtiyacım var tek bir ağ isteğinde ve döngüde değil. Uzak sunucuya bağlanmanın zamanı alacağına inanıyorum ki, tek bir istek tüm dosyaları tek geçişte oldukça hızlı bir şekilde alabilmelidir.Excel VBA verimli dosya adlarını döndürme işlevi
Private Function GetFileNames(sPath As String) As Collection
'takes a path and returns a collection of the file names in the folder
Dim oFolder As Object
Dim oFile As Object
Dim oFSO As Object
Dim colList As New Collection
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder(folderpath:=sPath)
For Each oFile In oFolder.Files
colList.Add oFile.Name
Next oFile
Set GetFileNames = colList
Set oFolder = Nothing
Set oFSO = Nothing
End Function
+ 1 İyi soru :) Neredeyse beni düşünmüştün! –