2017-12-06 28 views
0

2人のスプレッドシートがあり、それぞれが異なる人物で記入されています。私はその後、別々のデータを最初のものと同じですが、うまくいけば2組のデータを組み合わせたmaterスプレッドシートにコピーしようとしました。 私は、1つのスプレッドシートから行をコピーするコマンドボタン "submit"を自分のシートに設定することができましたが、他の人が "submit"を押すと他のデータを上書きするだけです... 私はループしても、私はそれを働かせることはできません。2つのワークブックのデータを1つのマスターワークブックにコピー/マージする

Private Sub CommandButton3_Click() 

Application.ScreenUpdating = False 

Dim wkb1 As Workbook 
Dim sht1 As Worksheet 
Dim wkb2 As Workbook 
Dim sht2 As Worksheet 

Set wkb1 = ThisWorkbook 
Set wkb2 = Workbooks.Open("X:\TA Info\MASTER.xlsx") 
Set sht1 = wkb1.Sheets("Sheet1") 
Set sht2 = wkb2.Sheets("Sheet1") 

sht1.Cells.Copy 
sht2.Range("A1").PasteSpecial xlPasteValues 
Application.CutCopyMode = False 
wkb2.Close True 

Application.ScreenUpdating = True 

End Sub 

私はこれは非常にユニークな質問だと私は理解していますが、私は誰もが時間を提供していただければ幸いです。

ありがとうございます。

答えて

0

あなたのライン

sht2.Range("A1").PasteSpecial xlPasteValues 

は常にそこに何かを上書きし、範囲A1に貼り付けます。既存のデータ以下のデータを追加するには、

sht2.Range("A" & sht2.rows.count).End(xlup).offset(1,0).PasteSpecial xlPasteValues 

ああを使用する - しかし、あなたはA1に除いシートのすべてのセルをコピーすることはできません - 私たちはのみ使用セルをコピーする必要があります。

sht1.UsedRange.Cells.Copy 
+0

sht1.Cells.Copy 

変更するには、このような迅速な応答をありがとうございました!!今すぐランタイムエラー1004を返しています... – CharlieBea

+0

私は非常にわずかに変更しました 'sht2.Range( "A2"&sht2.Rows.Count).End(xlUp).Offset(1、0).PasteSpecial xlPasteValues' sht2.Range( "A1")。PasteSpecial xlPasteValues '1004エラーが発生する "object_'worksheet'の 'Range'メソッドが失敗しました。 – CharlieBea

+0

いいえ動作しません。私たちがやっていることは、範囲( "A"&総行数)でスプレッドシートの最下部(行1million)から始めて、最初の占有セルに.end(xlup)、次に1 .offset(1,0)を持つ行 ランダムなA2を追加することは意味をなさない。あなたは私が与えたものとあなたの行を置き換える必要があります –

関連する問題