2017-12-12 15 views
0

したがって、ワークシート1-ワークブックAからワークシート1-ワークブックBまでのセルの特定の範囲の値をコピーしたいとします。範囲機能でLastRowを使用するにはどうすればよいですか?

ソースワークシートからすべてをコピーするとします。具体的には、値を持つすべてのセルをコピーします。

宛先ワークシートには、ソース・ワークシートの値に指定されたセルがあります。

これは(!それは悪いですが、私はVBAでのnoobだ)これまでの私のコードです:私の範囲で

Sub CopyRangeofCells() 
Dim x As Workbook 
Dim y As Workbook 



Set x = Workbooks.Open("C:\test\template.xlsx") 
Set y = Workbooks.Open("C:\test\finalfile.xlsx") 


x.Sheets("RDBMergeSheet").Range("A1").Copy 


y.Sheets("CW Fast").Range("A1").PasteSpecial 

'Close x: 
x.Close 

End Sub 

、私は範囲(「:LASTROW A1」)のような何かをしたいですまたは何かの種類。どうすればいいのですか?私はlastrow変数を作成してから( "A1:mylastrowvariable")することはできますか?

希望すると助かります! VBAはとても混乱しているので、Javaを一日中教えてください! :Pこのような

+0

シート上の最後のセルを使用し、その後、 '.END(xlUp)が –

+0

スタートを.row'このビデオを見て:[Excel VBAの紹介パート5 - セル(範囲、セル、アクティブセル、終了、オフセット)の選択](https://www.youtube.com//watch?v=c8reU-H1PKQ&index=5&list=PLNIs- AWhQzckr8Dgmgb3akx_gFMnpxTN5)。 –

答えて

0

何か:

Sub CopyRangeofCells() 
Dim x As Workbook 
Dim y As Workbook 
Dim LastRow as Long 
Dim LastRowToCopy as Long 

Set x = Workbooks.Open("C:\test\template.xlsx") 
Set y = Workbooks.Open("C:\test\finalfile.xlsx") 

LastRowToCopy = x.Sheets("RDBMergeSheet").Cells(x.Sheets("RDBMergeSheet").Rows.Count, "A").End(xlUp).Row 
x.Sheets("RDBMergeSheet").Range("A1:A" & LastRowToCopy).Copy 
'copy from A1 to lastrow 
LastRow = y.Sheets("CW Fast").Cells(y.Sheets("CW Fast").Rows.Count, "A").End(xlUp).Row + 1 'find the last row 
y.Sheets("CW Fast").Range("A" & LastRow).PasteSpecial xlPasteValues 
'paste on the lastrow of destination + 1 (so next empty row) 
x.Close 
End Sub 
+0

ソースの代わりにターゲットのターゲットの最後の行が見つかりませんか?私は困惑している 。_。 –

+0

コピーする範囲の最後の行を見つけるために自分の答えを更新しました。貼り付け先の最後の行を見つけました。 – Xabier

+0

完璧に見えますが、下付き文字が範囲外です宛先の最後の行を見つける:(私は試行錯誤して、どうしてそれが起こっているのかを確認していきます。ありがとう! –

1

だが、それはステップバイステップでやってみましょう:

Sub CopyRangeofCells() 

Dim x As Workbook 
Dim y As Workbook 
Dim LastRow As Long 

Set x = Workbooks.Open("C:\test\template.xlsx") 
Set y = Workbooks.Open("C:\test\finalfile.xlsx") 

With x.Sheets("RDBMergeSheet") 
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' get last row with data in column "A" 

    .Range("A1:A" & LastRow).Copy 
End With 

y.Sheets("CW Fast").Range("A1").PasteSpecial xlPasteValues 

'Close x: 
x.Close 

End Sub 
+0

良い音だけど "subscript out-of-range"エラーが出ていて、この行がハイライト表示されています。デバッガで y.Sheets( "CW Fast")範囲( "A1")PasteSpecial –

+0

@MiguelSáLemos編集したコード –

+0

はペースト線でも同じエラーです。範囲外ですか?私が考えることができるのは、これと矛盾するかもしれない2つの事柄だけです。私はその列にフィルターを付けて、データ検証をしています。これはこのエラーの説明ですか? –

関連する問題