2016-05-19 11 views
-1

私はVBAマクロにはとても新しく、いくつかのコードを教えていますが、私は現在の仕事に苦労しており、私が探している答えを見つけることができませんために。新しいワークシートでexcelから別のワークブックに範囲をコピー

1つのワークブックから別の「マスター」ワークブックにセルの範囲(B3:N21)をコピーしたいと思っています。これは簡単ですが、マスターコピーの空白/新しいワークシートにコピーしたいと思いますマクロが実行される時刻。

範囲には数式が含まれていますが、マスタワークブックにコピーされた値のみが必要です。

これについてのお手伝いがあれば幸いです。私はあなただけの特別な貼り付ける必要があると思う

おかげ

答えて

0
Worksheets("Sheet1").Range("C1:C5").Copy 
Worksheets("Sheet2").activate 
Worksheets("Sheet2").Range("D1:D5").PasteSpecial _ 
Operation:=xlPasteSpecialOperationAdd 
End With 

が、これは

+0

ActiveWorkbook.Sheets.Addを投げられるだろう、「マスター」ワークブックがすでに開かれていると仮定しています –

0

コメント

上記のコードを減らすことができ、この

Option Explicit 

Sub main() 

    Dim masterWb As Workbook 
    Dim mySht As Worksheet 

    Set mySht = ThisWorkbook.ActiveSheet '<~~ assuming you're copying values from active worksheet of the workbook the macro resides in 
             ' beware: if you start the macro while the active sheet is not the one you want, this will lead to unespected results 

    Set masterWb = Workbooks("Master") '<~~ Change "Master" with whatever name your master workbook must have 
             ' beware: we're assuming "Master" workbook is already open, otherwise this line will throw an error 

    With masterWb.Worksheets.Add 
     .Range("B3:N21").Value = mySht.Range("B3:N21").Value 
    End With 

End Sub 

心を試すの例でありますはるかにあまり冗長ではなく(そして自明でもあります)、次のようになります。

あなたが

におけるマクロ存在は用心ワークブックのアクティブワークシートから値をコピーしていると仮定し

  • :あなたの場合である長いコード、同じコメントを適用

    Sub main2()  
        Workbooks("Master").Worksheets.Add.Range("B3:N21").Value = ThisWorkbook.ActiveSheet.Range("B3:N21").Value  
    End Sub 
    

    アクティブなシートが目的のものではない間にマクロを開始すると、予期しない結果につながります。

  • 変更「マスター」にはマスターブックに必要な名前を付けてください

    注意してください:これは、コードにすることができ=ワークシート(Worksheets.Count):私たちは、そうでない場合、エラーが前に

+0

これはまさに私が探しているものだと思われますが、マクロを実行すると「下付き文字が範囲外です」というランタイムエラーが発生します。あなたのコメントに従ってファイル名を「マスター」に変更しました。それ以上の助けがあればありがたいです。 –

+0

あなたはその行がその行をスローするように親切にするべきです。 'Set masterWb = Workbooks(" Master ")'行でなければならないと、私はすべての私のコメントの前提と警告に確実に対処しなければなりません – user3598756

+0

私は謝罪しています、これを投げるSet masterWb = Workbooks( "Master")エラー。私はあなたのコメントを考慮に入れて、マスターバージョンが開いていることを確認しました。アクティブシートにあります。 –

関連する問題