当前位置:编程学习 > VB >>

EXCEL2010 FileSearch的问题,求高手指点

本帖最后由 songyingjian2008 于 2013-11-07 09:52:33 编辑 看来偶out啦.........
我的电脑还是2003+2007 Office 2007 也不支持这个。 

不过,看到你用到了 .SearchSubFolders = False ,那就很好办了。
不用搜索子目录,很好处理。可以写一个很简单的函数,来替代它。
Private Function SearchFiles(sPath As String, sFileName As String) As String()
    Dim aList() As String
    Dim sTemp   As String
    Dim i&, k&, U As Long

    If (Right$(sPath, 1) = "\") Then
        sTemp = sPath & sFileName
    Else
        sTemp = sPath & "\" & sFileName
    End If
    k = -1:    U = 31
    ReDim aList(U)
    sTemp = Dir$(sTemp, 7&)
    Do
        If (Len(sTemp) = 0) Then Exit Do
        k = k + 1
        If (k > U) Then
            U = U + 8
            ReDim Preserve aList(U)
        End If
        aList(k) = sTemp
        sTemp = Dir$()
    Loop
    If (k >= 0) Then ReDim Preserve aList(k)
    SearchFiles = aList
End Function


' 应用示例:
Private Sub test()
    Dim aFiles() As String
    Dim i&
    ' 搜索 “D:\文档” 中的所有 .xls 文件:
    aFiles = SearchFiles("D:\文档", "*.xls")
    For i = 0 To UBound(aFiles)
        Debug.Print i, aFiles(i)
    Next
End Sub
如果你可以搜到filesearch弃用,那应该可以看到可以用application.findfile方法替代。

其实两个功能是一样的,都是打开指定的文件,并返回给一个application变量。 学习了
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,