Tôi cần lấy bộ sưu tập tên tệp từ một thư mục trên máy chủ từ xa bằng VBA trong excel 2010. Tôi có một hàm hoạt động và trong phần lớn các trường hợp nó sẽ thực hiện công việc, tuy nhiên máy chủ từ xa thường gặp sự cố nghiêm trọng, khủng khiếp hiệu suất mạng. Điều này có nghĩa là việc lặp lại 300 tệp để đưa tên của họ vào bộ sưu tập có thể mất 10 phút, số lượng tệp trong thư mục có khả năng tăng lên hàng nghìn, vì vậy điều này không khả thi, tôi cần một cách để có được tất cả tên tệp trong một yêu cầu mạng đơn và không lặp lại. Tôi tin rằng kết nối của nó với máy chủ từ xa đang dành thời gian để một yêu cầu duy nhất có thể nhận được tất cả các tệp trong một lần truyền khá nhanh chóng.Excel VBA có chức năng lấy tên tệp là
Đây là chức năng Tôi hiện có tại chỗ:
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 Câu hỏi hay :) Bạn gần như đã suy nghĩ! –