我正在尝试在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
答案 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)的引用。