• ベストアンサー

任意の最終行番号を取得し他列でのコピーに利用したい

お世話になります。 任意の最終行番号を取得し、他の列でコピー時にその行番号までコピーしたいと考えております。 添付の例では、12行目が最終行となっていますが、この12行を得て「E列」に新たに行を追加し 「D列」の依頼年月の下二桁の月の部分だけを抽出し、任意の最終行(この場合12行目)までコピーしたい。 4行目にブランク行があると3行目までしかコピーせず困っております。 賢者の皆様、お知恵をお貸し下さい。 よろしくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No3です。 セルの表示を03のようにするのでしたら次のマクロにしてください。 Sub 式の貼り付け() Dim RowPos As Integer For RowPos = 2 To Cells(65536, 1).End(xlUp).Row Cells(RowPos, 5).Value = Right(Cells(RowPos, 4).Value, Length:=2) Cells.NumberFormatLocal = "00" Next End Sub

happy_rio123
質問者

お礼

KURUMITO様 早速の解答ありがとうございました。 No.4の方からご指摘がありましたように、「行・列・セル」の表現がごちゃごちゃになっておりました。 にもかわらず、意図をご理解いただきありがとうございました。 結果は、思い描いたいものが導き出されていて大変助かりました。 またとんちんかんな問い合わせをするかもしれませんが、機会がございましたら お答えいただけると幸いです。 どうもありがとうございました。

その他の回答 (4)

  • 374649
  • ベストアンサー率38% (203/527)
回答No.5

大変失礼な言い方かもしれませんが、行と列の概念を理解していないのでは。 >12行を得て「E列」に新たに行を追加 列にどのように行が追加できるのでしょうか。 >4行目にブランク行があると 4行目にブランク列(セル)があると...ではないでしょうか。 難解な表現なので意図を正しく汲み取っているか判りませんが、要するに最終行の行番号を得て表に1行追加して対象行のD列とE列のセルに希望の処理をしたいということですか。 添付図から判断してA列はすべて埋まっているのでA列で最終行を求めるには Dim 最終行 as string 最終行=Worksheets("***").Range("A1048576").End(xlUp).Address '最終行の1行下のセルの番地が取得できます。 最終行には”A13”が入るのでRight関数で下2桁の数を取り出しlong(integerでは行数が多いので対応できないことがあります)に定義した変数に(13-1=12)で代入すれば、仮に変数をNoとすればD列のセルは Cell(No,4)、E列のセルはCell(No,5)となります。 御希望の処理はご自分で工夫して見て下さい。 失礼な点、間違っていたら無視してください。

happy_rio123
質問者

お礼

374649 様 早速の回答ありがとうございます。 「行・列・セル」の表現がごちゃごちゃになっておりまして申し訳ございませんでした。 次回からは質問前に再度推敲いたします。 それにもかかわらずアドバイスいただき助かりました。 どうもありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

シート見出しからシート名を右クリックして「コードの表示」を選択します。 表示な画面には例えば次のようなマクロを入力します。 Sub 式の貼り付け() Dim RowPos As Integer For RowPos = 2 To Cells(65536, 1).End(xlUp).Row  ’A列での最終行を求めています。 Cells(RowPos, 5).Value = Right(Cells(RowPos, 4).Value, Length:=2) Next End Sub

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

#1さん、D列のコピーですよ? =IF(D2="","",RIGHT(D2,2)) を下にコピー。

happy_rio123
質問者

お礼

edomin7777さん 早速の回答ありがとうございます。 手動でコピーするのではなく、「最終行を取得し、自動で」行いたいのです。 関数やマクロをお教えいただきたいのですが..... よろしくお願いいたします。

  • TinyPine
  • ベストアンサー率30% (719/2386)
回答No.1

要求仕様と違うけど、E列に下記の関数を貼り付けておくのでは駄目ですか。 =IF(A7="","",RIGHT(A7,2))

関連するQ&A