2016-07-26 6 views
2

行(lastUsedRow)を最後の行まで塗りつぶし(またはコピー)する方法を調べようとしています。しかし、私は自分がレンジの指定に苦労していることを知っています(特にサイズの異なる別のデータセットを扱っているため)。どの行31ここにある -VBAで行を塗りつぶす

前に私はlastUsedRowlastUsedRow = .Range("A" & .Rows.Count).End(xlUp).Row)を発見する必要があります。

次に、lastRow = .Range("E" & .Rows.Count).End(xlUp).Rowを使用して見つけることができる最後の行(lastRow) - 行39までを埋めるようにVBAに伝えたいと思います。それは

enter image description here

enter image description here

後、カラムE.内のデータが質問

VBAがRange().FillDownで動作するように推奨していますが、私は苦労した最新の行を指定しますデータセットの変更をコーディングするときの範囲を指定するs。より正確には、lastUsedRowlastRowの間の範囲を書き留めるにはどうしたらいいですか?

+0

を参照してください。あなたが書式を保持する必要がある場合は

Dim lastRow as Long, lastUsedRow as Long Dim srcRange as Range, fillRange as Range With Worksheets("Sheet1") lastUsedRow = .Range("A" & .Rows.Count).End(xlUp).Row lastRow = .Range("M" & .Rows.Count).End(xlUp).Row ' Fill values from A:D all the way down to lastUsedRow Set srcRange = .Range("A" & lastUsedRow & ":D" & lastUsedRow) Set fillRange = .Range("A" & lastRow & ":D" & lastUsedRow) fillRange.Value = srcRange.Value End With 

は、その後、Copyメソッドを使用します正しい、そして。それをA39に記入する必要がある場合は、なぜそれをA20にのみ定義しますか? –

+0

'Set fillRange = Worksheets(" Sheet1 ")。範囲(" A1:A "&lastRow)'? –

+2

@DavidZemensは、「fillRange = Worksheets( "Sheet1")を設定します。Range( "A"&lastUsedRow& ":D"&lastRow) 'のようなものでしょうか? – Mikegrann

答えて

2

私はあなたが列のlastUsedRowからの値を使用して、(コルAから定義)lastUsedRowから(コルMから定義)lastRowに、Dスルー列フィルダウンしたいと思います:D。

srcRange.Copy Destination:=fillRange 

注:使用するためのあなたに+1あなたの `fillRange`ではないように思わcorrect way to find the 'last row'

+0

私を助けるために時間を取ってくれてありがとう!しかし、補充するのではなく、lastUsedRowを消去します(最後の行まで書き込む予定です) – pdx

+0

驚くべきことに、完璧に機能しました!ご協力いただきありがとうございます! – pdx

関連する問題