2

私はいくつかの検索を行いましたが、現在存在しない .filesearch を使用するときに適切なコードを見つけるのに苦労しています - Dir と FileSystemObject の両方を使用して調べましたが、検索後にループを使用すると混乱するだけ...簡単な結論に達するのを手伝ってくれることを願っています!

要するに、私の現在のコードは、すべての Excel ファイルのフォルダーを検索し、最初のファイルを開き、それに対して必要な処理を行い、それを閉じて、次に検索されたファイルを開きます。前もって感謝します!

FilePath = "S:\My\File\Path"
FileSpec = ".xls"

Set FS = Application.FileSearch
    With FS
        .LookIn = FilePath
        .Filename = FileSpec
        .Execute
    End With

For b = 1 To FS.FoundFiles.Count
    StrFile = FS.FoundFiles(b)

Set mobjXL = New Excel.Application
With mobjXL

    .Visible = False

'REST OF CODE HERE

next b
4

2 に答える 2

3

これにより、正しい方向に向けられるはずです。

Sub Your_Sub()

Dim FSO as Object
Dim FSO_FOLDER AS Object
Dim FSO_FILE as Object
Dim FILE_PATH as String
Dim FILE_EXT as String

FILE_PATH = "S:\My\File\Path"
FILE_EXT = "xls"

''Create FileSystem Objects
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FSO_FOLDER = FSO.GetFolder(FILE_PATH)

If FSO_FOLDER.Files.Count > 0 Then

    ''Loop through each File in Folder    
    For Each FSO_FILE IN FSO_FOLDER.Files

       ''Test extension
       If FSO.GetExtensionName(FSO_FILE.Name) = FILE_EXT Then
           ''Do your thing here
       Else:End if

    Next

Else

Msgbox "No Files Found at " & FILE_PATH

End If

Set FSO = Nothing
Set FSO_FOLDER = Nothing

End Sub
于 2013-07-16T10:02:34.640 に答える