0

開いたブックをループする

開いているすべてのブックを実行するコードですが、約10〜12回実行されてから停止するという問題があります。誰かがどんなアイデアをもらえることができますか...

Sub OpenAllWorkbooks()
    Set destWB = ActiveWorkbook

    Dim DestCell As Range

    FileNames = Application.GetOpenFilename( _
        filefilter:="Excel Files (*.csv*),*.csv*", _
        Title:="Select the workbooks to load.", MultiSelect:=True)

    If IsArray(FileNames) = False Then
        If FileNames = False Then
            Exit Sub
        End If
    End If

    For n = LBound(FileNames) To UBound(FileNames)
        Set wb = Workbooks.Open(Filename:=FileNames(n), ReadOnly:=True)
    Next n

    Dim cwb As Workbook

    For Each cwb In Workbooks
        'With Application

            'cwb.AcceptAllChanges
        'End With

        Call donemovementReport

        ActiveWorkbook.Close True
        ActiveWorkbook.Close False
    Next cwb
 End Sub
4

2 に答える 2

2

一度にすべてのブックを開くのはなぜですか? それらを 1 つずつ開き、作業が完了したら閉じます。たとえば (未テスト)

 Sub OpenAllWorkbooks()
    Dim wb As Workbook, thisWb As Workbook
    Dim DestCell As Range
    Dim FileNames As Variant
    Dim n As Long

    Set thisWb = ThisWorkbook

    FileNames = Application.GetOpenFilename( _
                filefilter:="Excel Files (*.csv*),*.csv*", _
                Title:="Select the workbooks to load.", MultiSelect:=True)

    If IsArray(FileNames) = False Then
        If FileNames = False Then
            Exit Sub
        End If
    End If

    For n = LBound(FileNames) To UBound(FileNames)
        Set wb = Workbooks.Open(Filename:=FileNames(n), ReadOnly:=True)

        Call donemovementReport

        wb.Close SaveChanges:=True
    Next n
 End Sub
于 2013-01-23T06:26:51.763 に答える
0

ケースの95%で多くのファイルを循環させるために私が使用するソリューション - おそらく役立つかもしれません:

Sub CSV_Cycling()

InputFolder = "D:\DOCUMENTS\"

    LoopFileNameExt = Dir(InputFolder & "*.csv")
    Do While LoopFileNameExt <> ""
    'Application.DisplayAlerts = False
    Application.Workbooks.Open (InputFolder & LoopFileNameExt)
    'Application.DisplayAlerts = True
    [..........YOUR CODE..........]
    LoopFileNameExt = Dir
    Loop 'Input Folder Files Cycling

End Sub

警告を回避するために文字列のコメントを外しApplication.DisplayAlerts =ます - 必要に応じて (ただし注意してください - ファイルは「デフォルト」オプションを使用して開かれます)、もちろんソースパスを変更してください)。

于 2013-01-23T11:18:35.427 に答える