2016-06-25 11 views
0

私はあるシートから範囲をとり、別のシートの次の空の行にコピーしようとしています(基本的には、A12:D12の次の空他のシートの行)。範囲は決して変更されません。私はこのような質問をたくさん見てきましたが、答えがうまくいっていると言っている人もいますが、それを働かせることはできません。Excel VBA - 1つのシートから別のシートに範囲をコピーする、次の空の行

VBAの新機能です。ここで私が使用しているコードは次のとおりです。

Private Sub CommandButton1_Click() 

    Dim NextRow As Range 
    Set NextRow = Range("A" & Sheets("Sheet3").UsedRange.Rows.Count + 1) 

    Sheet1.Range("A12:D12").Copy 
    Sheet3.Activate 
    NextRow.PasteSpecial Paste:=xlValues, Transpose:=False 
    Application.CutCopyMode = False 

    Set NextRow = Nothing 

End Sub 

これは動作しますが、それは実際にSheet3に任意の値を貼り付けていません。私は行方不明のものがありますか?これを行うより良い方法はありますか?

ありがとうございます!

答えて

2

2番目の行に問題があっただけで、NextRowが定義されています。
これを行うより良い方法はありますか?それはあなたのニーズに依存します。個人的に私はVBAマクロの間に他のセルをアクティブ化/選択するのは好きではありません。私はSheet3.Activateを取り除くだろう。私はまた、クリップボードを使用せずにユーザーのクリップボードの内容を変更することを避けるために、「手動」のものをコピーします。

Private Sub CommandButton1_Click() 

    Dim NextRow As Range 
    Set NextRow = Sheet3.Range("A" & Sheet3.Rows.Count).End(xlUp).Offset(1, 0) 

    Sheet1.Range("A12:D12").Copy 
    Sheet3.Activate 
    NextRow.PasteSpecial Paste:=xlValues, Transpose:=False 
    Application.CutCopyMode = False 

    Set NextRow = Nothing 

End Sub 
関連する問題