• ベストアンサー

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

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

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.7

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

961awaawa
質問者

お礼

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

その他の回答 (6)

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答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
  • ベストアンサー率65% (1617/2456)
回答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
  • ベストアンサー率48% (713/1474)
回答No.4

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

961awaawa
質問者

お礼

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

  • msMike
  • ベストアンサー率20% (363/1775)
回答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% (363/1775)
回答No.2

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

961awaawa
質問者

お礼

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

  • SI299792
  • ベストアンサー率48% (713/1474)
回答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

  • Excel2016でリボルビングコピペ

    sheet8のセル範囲C3:C10000までの各セルに記号値A~Jのいずれかがランダムに入ってます。 マクロボタンを押します。 C3:C10000の範囲の内から 何個か行番数を選びます。 選ばれた行番数から50行戻った所までの範囲の記号値を横化して、 O4:BL4の範囲から下に向かって6000行程繰り返してコピペしたいです。 繰り返しコピペの際に選んだ行番数に+1 をして同じ形の行には成らないようにしたいです。 (抜き出して、リボルバーみたいに回転してコピペするけど、コピペされる度に行番数に+1 されてるので同じではない、みたいな感じです。) 教えて頂けたら幸いです。

  • Excel2007で質問です。

    sheet1にセルD3から下に向かってデータが2000個以上入ってます。 (1)マクロボタンを押します。 (2)D列で任意の行番号の値(今回は1000行目)をコピーします。 (3)sheet2,sheet3,sheet4のN6に(2)をペイストします。 (4)、(1)に戻りマクロボタンを押します。 (5)、(2)に行きまして、1つ下の1001行目をコピーします。 (6)、(3)に行きN6の下のN7にペイストします。 これをマクロボタンを押す度に繰り返したいです。

  • エクセル関数の質問    対象範囲の中で、一番上の行の値を返す関数

    A1~A9までの9つのセルに、A9からA1へと下からデータが連続して埋まっていきます。 この範囲で値の入っている最上のセルの値を返す関数は作ることができませんでしょうか? 行は100行くらいになる予定です。 最下の行を返す関数は見つけました。同じように作れないでしょうか?   =INDEX(A:A,COUNT(A:A)) よろしくお願いします

  • Excel2007で行番号を指定してセル範囲を

    Excel2007で行番号を指定してセル範囲を抜き出したいです。 sheet2のF8に行番号を入れてsheet3のセル範囲(C:T)の値とセル範囲(AB:AS)の値を取り出して sheet2の(A2:AQ2)に入れます。目で分かりやすい様に背景色か色線で4等分したいです。 よろしくお願いいたします。

  • 表を指定範囲内にコピーする

    シート1で表を作りコピーボタンを押すと、その表を別のシートにコピーするにはどうすればいいのですか?(コピーボタンは、シート1内にある物とする)条件として、別のシートのC列~N列の間で最終行の次の左端にコピーするものとする。また、C列~N列以外にデーターがあっても関係ないものとする。例、シート1の表(B1~L24)をシート2にコピーするとする。シート2を見るとA20,F15,P18にデーターがあります。A20とP18はC列~N列の範囲外で範囲内にあるセルF15によりセルC16からコピーするにはどうすればいいですか。また、実際には、シート2のデーターは決まっていません。 よろしくお願いします。

  • EXCEL:ご教授下さい!

    度々の質問失礼致します A1に 別シートのセルB2から読み込ませる値があります 例 A1=シート名!B2 そして行2は空白欄をつくります この2行を下にコピーしたいのですが次の A3に入ってほしい値である A3=シート名!B3は入らずひとつ飛ばしの A3=シート名!B4が入ってしまいます。 作業中のシートは一行おきになりますが、引用するシートの行は1行飛ばしせずに読み込む方法はありますでしょうか? かなり説明が分かりずらいと思いますがお助け願います!

  • Excel2007で複雑なセルコピペ。

    sheet8のセル範囲C3からセルI10000までの各セルにA~Jのいずれかがランダムに入ってます。 マクロボタンをおします。 (1)、C12の値をM3にコピペしてC12から5行戻ったC7の値をセルO3にコピペします。 (2)、M3の値とO3の値が同じならM3の背景色を黄色にしたいです。同じでないならそのままです。 マクロボタンを押します。 (3)、1つ下のC13に行き(1)と同じことをするのですが、1つ下のM4にC13の値をコピペしてC13から7行戻ったC6の値をO4にコピペしたいです。 (4)、(2)と同じようになり マクロボタンを押します (5)、1つ下のC14に行き(1)と同じことをするのですが、1つ下のM4にC14の値をコピペしてC14から9行戻ったC5の値をO5にコピペしたいです。 (6)、(2)と同じようになります。 マクロボタンを押します。 End マクロボタンを押す度にC12から1つずつ下に向かい、M3から1つずつ下に向かって値をコピペするのですが、セルOにコピペされるのは1つずつ下に向かうセルCの値から、5行戻り、7行戻り、9行戻りと戻ってはまた5行、7行、9行と戻った値を繰り返しコピペしたいです。 よろしくお願いいたします。

  • エクセルのセルを参照して別シートに張り付ける2

    こんにちは。 エクセルのsheet1とsheet2があり、sheet1のセルに入力されている文字や数値をsheet2にコピーしたいと思っています。(sheet2には値として張り付けたい) <条件> sheet1の3行目から下(3000行目まで)をコピーしてsheet2の2行目から下(3000行目まで)に張り付けたい。 しかし、下記のように列も入れ替えたい。下記以外はコピーしない。 sheet1   sheet2  A  →  A  G  →  B  H  →  I  M  →  G  Q  →  K R+S  →  L  (sheet1のR列とS列の文字を結合したもをsheet2のL列に)  T  →  M  U  →  N このような作業を1回で行うことはできるのでしょうか? よろしくお願いします。

  • Excel関数について

    Excel関数について質問です。 以下の二つ (1) 下のように、セルA1から入力されてるものを、1、2、3・・と数字順に並び替える良い方法はありますでしょうか。 A-1 A-10 A-10A A-100 A-2 A-20 A-22.5 ・ ・ A-555 ・ ・ (2) 一行目と二行目に値の入ったセルと空白セルが混在しています。どちらも同じものに対する値の為、一行目にまとめようと、一行目の空白セルに二行目のセル(下)に値がある場合はその値を返し、空白の場合は空白のままにするというIF関数を使いましたがうまくいきませんでした。三行目と四行目、五行目と六行目・・とかなりあります。良い方法を教えていただけますでしょうか。 よろしくお願いいたします。

  • Excel 任意の行数・列数のデータを合体VBA

    VBAで、Sheet1のデータの最終行に Sheet2の同じ並びのデータを続けてくっつけ、 Sheet3に(Sheet1とSheet2のデータが)連続した状態をつくる場合のVBAの書き方を教えてください。 ちょうどSheet1のブルーの範囲(ただし最終行はn行=データは様々で最終行は不特定だが最終行の下にはもうデータはない、最終m列の右にはまだデータが膨大にあるが、今回はA~m列(ここではA~AX列と指定可能)をコピーしたい) に Sheet2の黄色い範囲(ただし最終行はn行=データそれぞれで不特定だが最終行の下にはもうデータはない、最終m列はSheet1と同じ構成=A~AX列) をくっつけたい。 ・アウトプットはSheet3。 (Sheet1とSheet2はいじらずそのまま残す) ・コピーして貼り付ける(複写する)のは、値だけ (罫線とか計算式は不要) です。 よろしくお願いします。

専門家に質問してみよう