2016-11-02 11 views
0

Excelファイルがあります.Sheet1のすべてのデータをコピーし、特定の順序でSheet2に貼り付けるマクロがあります。特定の名前を持つ場合、列をループする

問題:ファイルが追加の列で更新​​されることがあるので、シート1からシート2への特定の列にそのデータを貼り付ける必要があります。例は次のとおりです。Sheet1の値がNewData1であれば、その列の名前を見つけるためにCells.Findを使用しましたが、これはコピーする必要があります。その全体の列の値と

下に新しいシートに貼り付け

更新されたコード

Set res = Worksheets("Sheet1").Cells.Find(What:="NewData1") If Not res Is Nothing Then Sheets("Sheet1").Select Range(Cells(2, res), Cells(50, res)) 'SOMETHING LIKE THIS Selection.Copy Sheets("Sheet2").Select Sheets("Sheet2").Cells(3, 9).Select ActiveSheet.Paste End If 

UPDATE期待

ColA ColB  ColC 
Hello Goodbye How are you 
Hi  Bye  Are you well 
Hey  Seeya  You ok 

NewData1はこれに追加され、それはこのようになります場合:

ColA ColB  ColC   NewData1 
Hello Goodbye How are you Im new 
Hi  Bye  Are you well So am i 
Hey  Seeya  You ok   Me Too 

私はそのデータをコピーして、他のシートに貼り付ける必要があり、問題はそれがシートの第4列でないかもしれない、それは5日6日または7日かもしれません。これは私がUPDATE 2 再行うことができること、これに似たものがある、コードを編集した

セル値によってコピーするために探していますなぜですか?

+1

あなたが持っているコードを最初に投稿する方がよいでしょう。 –

+0

プラスあなたが望むものを示すいくつかの例。 – FDavidov

+0

これに応じて更新されました – Nonagon

答えて

0

あなたはそれで作業そして、まず現在のデータセット内の列数を格納することによって開始することができ、しかし、ちょうどスタートのthats:さらに

Dim n As Long 

n = Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column 

、なぜあなただ​​けのダイナミックのコピーペーストを行ういけません毎回遠隔データセット?

+0

注意:これは 'Sheets(" Sheet1 ")になります。 '(' Columns.Count'はシート参照も必要です) – BruceWayne

+0

ありがとうブルース!私のExcelではコードが正常に機能しましたか? – user1

+0

'Sheets(" Sheet1 ")'がアクティブシートである限り、それは動作するはずです。ただし、シートを変更して実行すると、エラーが発生します。範囲オブジェクト( 'Range()'、 'Cells()'、 'Columns()'、 'Rows()'など)を明示的に使用しない場合は、シートを明示的にインクルードすることをお勧めします。アクティブシートを使用します。 – BruceWayne

関連する問題