在VBA中查找IP地址中的共享文件夹

时间:2016-03-03 03:48:56

标签: windows vba

我正在尝试在VBA中的IP地址中的共享文件夹名称列表中找到一个字符串。 以下例程适用于文件夹但不起作用。它说的错误是Err-76,找不到路径。 任何人都可以告诉我如何访问IP地址中的共享文件夹名称。

Sub findfolder()
Dim myFolder As Folder
Dim objfile As Object
Dim subfolder As Object
Dim FSO As New FileSystemObject
Dim txt As String
Dim strname As String

txt = "\\10.4.32.33"
'spath = GetFolder(txt)
strname = InputBox(Prompt:="You Search String please.", _
         Title:="ENTER SEARCH STRING", Default:="Your Search String here")

Set myFolder = FSO.GetFolder(txt)
For Each subfolder In myFolder.SubFolders
    cnt = 0
    If (InStr(LCase(subfolder.Name), strname)) Then MsgBox ("found string" & subfolder.Name)
Next
End Sub

1 个答案:

答案 0 :(得分:0)

使用Shell.Application ActiveX代替FSO,这是一个示例:

Sub ShowSharedFolders()

    Const SHCONTF_CHECKING_FOR_CHILDREN = &H10
    Const SHCONTF_FOLDERS = &H20
    Const SHCONTF_NONFOLDERS = &H40
    Const SHCONTF_INCLUDEHIDDEN = &H80
    Const SHCONTF_INIT_ON_FIRST_NEXT = &H100
    Const SHCONTF_NETPRINTERSRCH = &H200
    Const SHCONTF_SHAREABLE = &H400
    Const SHCONTF_STORAGE = &H800
    Const SHCONTF_NAVIGATION_ENUM = &H1000
    Const SHCONTF_FASTITEMS = &H2000
    Const SHCONTF_FLATLIST = &H4000
    Const SHCONTF_ENABLE_ASYNC = &H8000
    Const SHCONTF_INCLUDESUPERHIDDEN = &H10000

    strPath = "\\10.4.32.33\"

    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.Namespace(strPath)
    Set objFolderItems = objFolder.Items()
    objFolderItems.Filter SHCONTF_FOLDERS + SHCONTF_INCLUDEHIDDEN, "*.*"

    For Each objFolderItem In objFolderItems
        Debug.Print objFolderItem.Name & vbTab & objFolderItem.Path
    Next

End Sub

对于早期绑定Set objShellApp = New Shell,您必须添加对Microsoft Shell控件和自动化(Shell32)的引用。