ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索

选择文件夹对话框 - Shell 对象

已有 1742 次阅读2013-1-11 09:16 |个人分类:Shell 对象| 文件夹, 对话框, Shell

MSDN:Shell Object (http://msdn.microsoft.com/en-us/library/bb774094(v=vs.85).aspx)

Shell.BrowseForFolder(ByVal Hwnd As Integer, _
                      ByVal sTitle As BSTR, _
                      ByVal iOptions As Integer, _
                      [ ByVal vRootFolder As Variant ]) As FOLDER

Hwnd 
    类型:整型
    父窗口的句柄,可以为 0
sTitle 
    类型:字符串 
    显示在文件夹选择对话框的字符串
iOptions 
    类型:整型 
    方法的参数选项。可以为 0 或是一组选项的组合,见 BROWSEINFO (http://msdn.microsoft.com/en-us/library/bb773205(v=vs.85).aspx)的 ulFlags 。
vRootFolder [可选] 
    类型:变体 
    对话框的根目录,用户不能访问高于该根目录。默认为 桌面 。该值可以为指定的目录路径或是一个 ShellSpecialFolderConstants (特殊目录常数,http://msdn.microsoft.com/en-us/library/bb774096(v=vs.85).aspx),VB内置了这些常数,VBA和VBS需要直接使用常数值。

示例:
Function GetFolderPath(sTitle As String) As String 
    Dim oShell As Object, oFolder As Object 
    Set oShell = CreateObject("Shell.Application"
    Set oFolder = oShell.BrowseForFolder(0, sTitle, 0
    If oFolder Is Nothing Then 
        GetFolderPath = "" 
    Else 
        GetFolderPath = oFolder.Self.Path 
    End If 
    Set oFolder = Nothing 
    Set oShell = Nothing
End Function

Sub search()
    On Error GoTo 100
    Dim wsh As Object, mypath$, ar
    mypath = CreateObject("shell.application").BrowseForFolder(0, "请选择要搜索的文件夹", 0).Items.Item.Path    '在此指定目录
    Set wsh = CreateObject("wscript.shell")
    mypath = wsh.exec("cmd /c dir /a /s /b /a-d " & Chr(34) & mypath & Chr(34)).StdOut.ReadAll
    ar = Split(mypath, vbCrLf)
    Set wsh = Nothing
    Cells.ClearContents
    Range("a1").Resize(UBound(ar) + 1) = Application.Transpose(ar)
100:
End Sub

路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 免费注册

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 04:52 , Processed in 0.030208 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

返回顶部