最近遇到一个很难搞的问题:大家帮帮忙!问题描述:我写了一个检索文件的工具,使用了application.FileSeach,在四台电脑上一直非常好用的。今天突然有一台不知怎么回事就是检索不到文件,指定文件夹下明明有很多的.xls文件。我调试一下代码没有任何问题,就是检索不到文件,在其他三台上是正常的。于是我重启电脑,还是不行,我在网上找了很久有人说把ACCESS的安全降到最低,我试了还是不行。最后我把OFFICE卸了重装,还是不行。

解决方案 »

  1.   

    Option Explicit'*******************************************************************************
    '   FileSearchのサンプル(条件に該当するものをシートに表示)
    '   ※シート上の入力値に対する条理チェックは行なっていません。
    '*******************************************************************************
    Sub Sample_FileSearch()
        Dim vntF As Variant
        Dim objFS As FileSearch
        Dim objFSO As FileSystemObject
        Dim dteDate As Date
        Dim GYO As Long
        Dim cntFound As Long    Set objFS = Application.FileSearch      ' FileSearch
        Set objFSO = New FileSystemObject       ' FSO
        Rows("5:65536").ClearContents
        GYO = 4
        With objFS
            .NewSearch
            .LookIn = Trim(Cells(1, 2).Value)   ' Search開始フォルダ
            .Filename = Trim(Cells(2, 2).Value)' 探索ファイル式
            dteDate = DateAdd("m", Cells(3, 2).Value * -1, Date)
            .SearchSubFolders = True            ' サブフォルダも探索
            ' 処理開始
            If .Execute() <> 0 Then
                ' 見つかったファイル分のループ
                For Each vntF In .FoundFiles
                    '---------------------------------------------------------------
                    '    ↓↓↓この間が見つかったファイルに対する処理↓↓↓
                    ' FSOにてファイルを取得
                    With objFSO.GetFile(vntF)
                    ' 今回は、最終更新日を確認し、該当ならシートの表示
                        If .DateLastModified >= dteDate Then
                            GYO = GYO + 1
                            Cells(GYO, 1).Value = .Name
                            Cells(GYO, 2).Value = .DateLastModified
                            Cells(GYO, 3).Value = _
                                Left(.Path, Len(.Path) - Len(.Name) - 1)
                            cntFound = cntFound + 1
                        End If
                    End With
                    '    ↑↑↑この間が見つかったファイルに対する処理↑↑↑
                    '---------------------------------------------------------------
                Next vntF
            End If
        End With
        Set objFS = Nothing
        Set objFSO = Nothing
        ' 処理結果の表示
        If cntFound = 0 Then
            MsgBox "見つかりません"
        Else
            MsgBox cntFound & "個見つかりました"
        End If
    End Sub