• ベストアンサー

Excel2016 範囲最下から移動コピペ

sheet1のセルL4から下に向かって値が入ります。 その最下のセルから下に1セルと右に2セル移動させ、 その行のセルNから右に向かってセルBLまでを範囲コピーをし、 sheet8のA2からに、値だけをそのまま貼り付けたいです。 お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1733/2603)
回答No.7

No6の補足です。 訂正し忘れてました mColCount = Cells(, "BL").Column - Cells(, "N").Column + 1 は mColCount = Range("N1:BL1").Columns.Count で どちらも結果は同じです。

961awaawa
質問者

お礼

ありがとうございました。バシッとできました。

その他の回答 (6)

  • kkkkkm
  • ベストアンサー率66% (1733/2603)
回答No.6

N列からBL列と列数が多くてSheet8のA2から最後のセルがどこになるのか確認が面倒なので、セル数を計算してセル数で指定してみました。列位置が変わる場合"BL"と"N"を変更してください。 Sub Test() Dim Ws1 As Worksheet, Ws2 As Worksheet Dim LastRow As Long, mColCount As Long Set Ws1 = Sheets("Sheet1") Set Ws2 = Sheets("Sheet8") With Ws1 If WorksheetFunction.CountA(.Range(.Cells(4, "L"), .Cells(Rows.Count, "L"))) = 0 Then MsgBox "データがありません", vbInformation Exit Sub 'L4行目以降にデータがなければ作業停止 Else LastRow = .Cells(Rows.Count, "L").End(xlUp).Row End If '列数が多くてA2から最後のセルがどこになるのか確認が面倒なのでセル数計算して指定 mColCount = Cells(, "BL").Column - Cells(, "N").Column + 1 Ws2.Cells(2, "A").Resize(1, mColCount).Value = .Cells(LastRow + 1, "N").Resize(1, mColCount).Value End With Set Ws1 = Nothing Set Ws2 = Nothing End Sub

961awaawa
質問者

お礼

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

  • kkkkkm
  • ベストアンサー率66% (1733/2603)
回答No.5

数式でするとしたら、L列が文字か数値か両方混在か、また途中で空白があるかないかもわかりませんから、とりあえずどちらであってもいいようにしておくのはいかがでしょう。 =INDEX(Sheet1!N:N,MAX(IFERROR(MATCH(MAX(Sheet1!L:L)+1,Sheet1!L:L, 1),0),IFERROR(MATCH("",Sheet1!L:L,-1),0))+1)

961awaawa
質問者

お礼

本当にありがとうございます。

  • SI299792
  • ベストアンサー率47% (777/1627)
回答No.4

「値だけをそのまま貼り付け」と書いてあったので VBAだと思い込んだのですが、関数でもいいですね。 Sheet8 A2: =INDEX(Sheet1!N:N,COUNTA(Sheet1!$L$4:$L$65536)+4) AY2 迄コピペ。 その後、コピー形式を選択して貼り付け、値

961awaawa
質問者

お礼

様々な角度からの考察有り難いです。

  • msMike
  • ベストアンサー率20% (364/1805)
回答No.3

次式を入力した Sheet8!A2 を右方にズズーッと(AY列迄)オートフィルでは如何? =IF(INDEX(Sheet1!N:N,MATCH(10^308,Sheet1!$L:$L)+1)="","",IF(ISNUMBER(INDEX(Sheet1!N:N,MATCH(10^308,Sheet1!$L:$L)+1)),INDEX(Sheet1!N:N,MATCH(10^308,Sheet1!$L:$L)+1),""))

961awaawa
質問者

お礼

こういうやり方もあるんですね。ありがとうございました。

  • msMike
  • ベストアンサー率20% (364/1805)
回答No.2

》 その最下のセルから下に1セルと右に2セル移動させ、… 》 その行のセルNから右に向かってセルBLまで… 何を「移動させ」るのですか?アクティブセルを? 上記の文章は、下記と同じでは? その最下のセルから下に1行のN列からBL列まで……

961awaawa
質問者

お礼

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

  • SI299792
  • ベストアンサー率47% (777/1627)
回答No.1

例えばL13 迄データが入っていたら、 Sheet1!N14:BL14→Sheet8!A2、へコピペ。 そのようなマクロを作ればいいのですか。 Option Explicit ' Sub Macro1()   Dim I As Worksheet   Dim Row As Long '   Set I = Sheets("Sheet1")   Sheets("Sheet8").Select   Row = I.Cells(Rows.Count, "L").End(xlUp).Row + 1   [A2:AY2] = I.Range("N" & Row, "BL" & Row).Value End Sub

961awaawa
質問者

お礼

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

関連するQ&A

専門家に質問してみよう