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
' 应用示例:如果你可以搜到filesearch弃用,那应该可以看到可以用application.findfile方法替代。
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
其实两个功能是一样的,都是打开指定的文件,并返回给一个application变量。 学习了
补充:VB , VBA