2016-06-13 6 views
0

これはあなたにとっては簡単すぎるかもしれませんが、私はvbaで初めてです。私は次のコードを持っています。私のマスターファイルが開いているので、複数のファイルを開きます。行の特定の値をコピーして貼り付ける

Dim StrFile As String 
Dim WB As Workbook 
    Dim InputFilePath As String 
InputFilePath = "Z:\1000_Entwicklung\05_PROJECT\0558000_CFT \055800L_CFT_Projektleitung\99_Arbeitsordner PL\Tanverdi, Yigit\SAA\" 
StrFile = Dir(InputFilePath & "*") 

Do While Len(StrFile) > 0 
    Set WB = Workbooks.Open(InputFilePath & StrFile) 
    WB.Activate 
     sheets("data").Select 
     sheets("data").Move After:=Workbooks("makrotochange.xlsm").sheets(23) 
     StrFile = Dir() 
Loop 

    Dim copiedSheet As Worksheet 
    Dim masterSheet As Worksheet 

Set copiedSheet = Worksheets("data") 
Set masterSheet= Worksheets("masterSheet") 

セルをコピーしたいColumns A; B; C; Dをデータシート内のすべての行から最初の空行をマスターシートに貼り付け、列Dに貼り付けます。 C; A; B(セルAはマスターシートのセルD、BからC、CからC、DからBなどに貼り付けられます)。

行量は動的なので、私はコピーシートが含む行のAとBとCとDをコピーして、これをmasterSheets D; C; A; Bセルの最初の空行に貼り付けたいと思っています。 。

どのように私はこれを行うことができます知っていますか?

EDIT: 同じことを実行する必要があるcopiedSheet2が必要ですが、次の空の行に宛先(masterSheet)を貼り付ける必要がありますか?

答えて

1

これはあなたが後になっているはずです。 .Selectどこでも使用することなく、ある場所から別の場所にデータをコピーする最もクリーンな方法です。

copiedSheet.Range("A:A").Copy Destination:= masterSheet.Range("D:D") 
copiedSheet.Range("B:B").Copy Destination:= masterSheet.Range("C:C") 
copiedSheet.Range("C:C").Copy Destination:= masterSheet.Range("A:A") 
copiedSheet.Range("D:D").Copy Destination:= masterSheet.Range("B:B") 
+0

ありがとうございます!私はもう一つqeustionを持っています、もし私が同じ事を操作する必要がコピーされたSheet2を持っているが、それは次の空の行に宛先(masterSheet)を貼り付ける必要がありますか? –

+0

@BartuSaner答えが正しい場合は、[回答を受け入れる](http://stackoverflow.com/tour)とその回答をアップ(可能)してください。新しい質問がある場合は、新しい質問を投稿する必要があります。そのような参照が価値あるものだと考えるならば、新しい質問にこの投稿へのリンクを付けることができます(もちろん)。 BTW:*(+ 1)*私の側からこのポスト。 – Ralph

関連する問題