2016-08-16 9 views
0

私は特定のファイルをアクティブにしてデータをコピーするループを持っています。それは動作していないと私はなぜ見ることができません。以下を参照してください:VBA "Like"演算子とワイルドカード

For Each w In Workbooks 
    If w.Name Like "*File 1*" Then 
     Windows(w.Name).Activate 
     Sheets("Test").Range("C7:C15").Copy 
    End If 
Exit For 
Next w 

を現実に、各週のファイルの名前は「1ファイル - week1」から変更されますので、ワイルドカードがあり、「1ファイル - week2」するように、と。 ポイントは、vodeは類似のオペレータラインで停止するので、「ファイル1」の問題があると仮定していますか?

ご協力いただきありがとうございます。

+0

が正常に見えます。 'w.Name'が存在しない限り。 –

+0

名前が常に「ファイル1など」の場合は、最初のワイルドカードを削除します。そうでなければ、ファイル1の前に何かが必要です。 – DragonSamu

+0

コードが停止したときのエラーメッセージは何ですか? (あなたはあなたのコードで '.Activate'と他の' .Select'をすべて削除することを想定しなければなりません、彼らは通常、他のものよりも厄介な人です。[ここ] [http://stackoverflow.com/questions/10714251/how-to -avoid-use-select-in-excel-vba-macros)) –

答えて

1

最初の反復後に終了するような問題が1つあります。あなたが問題を説明した方法から、最初の試行の後ではなく、試合を見つけた後に検索を停止したいように思えます。

は、単純にこのように、Exit Forを移動:

For Each w In Workbooks 
    If w.Name Like "*File 1*" Then 
     Windows(w.Name).Activate 
     Sheets("Test").Range("C7:C15").Copy 
     Exit For 
    End If 
Next w 
関連する問題