2017-05-26 20 views
0

あるワークシートの特定のセルをコピーして別のワークシートに貼り付けるExcelマクロを作成しようとしています。残念ながらコードは機能していないので、どこに間違っているのかわかりません。ここで私が持っているものです。特定のセルを列にコピーして別のワークシートに貼り付けます

Sub sbCopyRangeToAnotherSheet() 

Range("A1").Select 
Selection.Copy 
Sheets("Sheet1").Select 
lMaxRows = Cells(Rows.Count, "B").End(xlUp).Row 
Range("B" & lMaxRows + 1).Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 
Sheets("Sheet2").Select 
Range("A1").Select 
ActiveSheet.Paste 
Application.CutCopyMode = False 

End 

この擬似コードに従うことをしようとしている:

場合は、行ワークシートで1番号の最初のセルを持っており、残りは空白になって、その数やペーストをコピーしますそれをシート2のセルA1に入れる。他

は、私はそれをクリックしたときに、私はボタンと実行にそれを割り当てられた一つのセルを下に移動し、再び

をチェック 。私は "Selection.PasteSpecial ...."行でデバッグエラーを取得します。

私は経験プログラミングはありません。これは私の最初の試みです。間違いがありましたら申し訳ありません。このトピックに関するGoogleの検索は、私の仕事用コンピュータが何らかの理由でブロックしたサイトにつながっています。

ありがとうございました!

答えて

0

貼り付け時にクリップボードが空になっているため、このエラーが発生しています。

私の提案。 の使用を避けてください。を選択してください。あなたのオブジェクトを定義し、それらのオブジェクトを操作します。あなたは、あなたのオブジェクトを宣言したら、このリンク

How to avoid using Select in Excel VBA macros

を参照してください、あなたが貼り付ける直前にコピーラインを移動することができます。

またはこの

lMaxRows = Sheets("Sheet1").Range("B" & _ 
      Sheets("Sheet1").Rows.Count).End(xlUp).Row + 1 

Sheets("Blah Blah").Range("A1").Copy 

Sheets("Sheet1").Range("B" & lMaxRows).PasteSpecial _ 
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
:=False, Transpose:=False 
ような何かを書きます
関連する問題