从MS Office缓慢访问smb文件和目录 - Excel VBA

时间:2013-11-27 14:13:12

标签: windows excel-vba smb excel-2013 vba

我正在运行MS Office 2013,我正在尝试从Excel VBA代码列出smb目录中的文件。

unix_path = "\\smb" & unix_path

 ListBox3.Clear
 Dim fil As file
 On Error Resume Next
 If Dir(unix_path, vbDirectory) <> "" Then

 Set MyObject = New Scripting.FileSystemObject
 Set mysource = MyObject.GetFolder(unix_path)
 For Each myFile In mysource.Files
 If InStr(myFile.Name, ".xlsx") > 0 Then
    UserForm1.ListBox3.AddItem myFile.Name
End If

大约需要15秒。目录本身只有5个文件。 值得一提的是,直接从资源管理器访问目录的速度要快得多(不到1秒)。

1 个答案:

答案 0 :(得分:1)

根据我的经验,FSO有很多开销,我在网络上遇到了一些奇怪的问题。我不经常使用它,除非我做的事情比这种情况更具体。

请测试以下代码并查看它是否仍然挂起,

unix_path = "\\smb" & unix_path

 ListBox3.Clear
 Dim fil As file
 On Error Resume Next
 If Dir(unix_path, vbDirectory) <> "" Then

 mySource = Dir(unix_path & "*.xlsx")
 Do until mySource = ""
    UserForm1.ListBox3.AddItem mySource
    mySource = Dir()
 loop
 end if