2017-05-31 5 views
1

私はこのサイトには新規で、助けが必要です。 Excel内のマクロを作成して、フォルダ内のブック内の特定のセルから値を取り出し、その情報を統合します。コードが正常に機能しているように見えますが、それはフォルダ内のブックの約半分を引っ張っているだけです。誰でも知っていますなぜこれをやっていると私はそれを修正することができますか?あなたはファイル"maytt.xlsm"しかし、あなたが実際にそのファイルが到達した全部(Then Exit Sub)を停止されているのをスキップにしたいようLoopThrough関数がファイルをスキップする

Sub LoopThroughDirectory() 
    Dim MyFile As String 
    Dim erow 
    Dim Filepath As String 
    Filepath = "T:\Sales Orders\2017\May\" 
    MyFile = Dir("T:\Sales Orders\2017\May\") 

    Do While Len(MyFile) > 0 
    If MyFile = "maytt.xlsm" Then 
     Exit Sub 
    End If 

    Workbooks.Open ("T:\Sales Orders\2017\May\" & MyFile) 
    Range("F1:F7").Copy 
    ActiveWorkbook.Close 

    ecolumn = Sheet1.Cells(Columns.Count).End(xlToLeft).Offset(0, 1).Column 


    ActiveSheet.Paste Destination:=Worksheets("Summary").Range(Cells(1, ecolumn), Cells(7, ecolumn)) 

    MyFile = Dir 
    Loop 

End Sub 
+1

「A」から「L」の文字で始まる名前のファイルから取り出すだけですか? – YowE3K

+1

ファイルマスクを置くことで、ワークブック(例えば、 'MyFile = Dir(" T:\ Sales Orders \ 2017 \ May \ *。xl * ")')だけを扱うことが考えられます。 Windowsは 'thumbs.db'のようなシステムファイルを置いて、あなたのようなループを本当に壊してしまいます。 – Jeeped

+0

YowE3K - いいえ、スキップされるファイルには韻や理由がないようです。 –

答えて

2

は、それは見えます。ファイルをスキップして続行するには、コードに次の変更を行います。

1- myFile = Dir文の前に行ラベルを追加します。

NextFile: ' <---------Add this 
     MyFile = Dir 
    Loop 

2- Goto NextFileExit Subを交換してください。

+0

ありがとうございます!私はこれを試しましたが、マクロはファイルを無期限に実行したいだけです。何か案は? –

+0

@ L.Oldenburg **の前に、 'MyFile = Dir'という行の前に' NextFile: '**というラベルを付けましたか? MyFileの= DIR( "T: –

+0

は、ここに私がやったことだ:サブLoopThroughDirectory() 薄暗いMyFileの文字列 薄暗いeRowパラメーター 薄暗いファイルパス文字列 としてファイルパスを=として: NextFile "T月\ \ 2017 \ \販売注文" \月\ \ 2017 \販売注文 ") んがレン(MyFileの)> 0 の場合MyFileの= "maytt.xlsm" その後 後藤NextFile END IF Workbooks.Open(" T:2017 \ \販売注文\ ( "F1:F7")。 ActiveWorkbook.Close ecolumn = Sheet1.Cells(Columns.Count).End(xlToLeft).Offset(0、1).C olumn ActiveSheet.Paste先:=ワークシート( "概要")範囲(セル(1、ecolumn)、細胞(7、ecolumn)) MyFileの= DIR ループ End Subの –

関連する問題