- ベストアンサー
任意の最終行番号を取得し他列でのコピーに利用したい
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
回答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
その他の回答 (4)
- 374649
- ベストアンサー率38% (203/527)
大変失礼な言い方かもしれませんが、行と列の概念を理解していないのでは。 >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)となります。 御希望の処理はご自分で工夫して見て下さい。 失礼な点、間違っていたら無視してください。
お礼
374649 様 早速の回答ありがとうございます。 「行・列・セル」の表現がごちゃごちゃになっておりまして申し訳ございませんでした。 次回からは質問前に再度推敲いたします。 それにもかかわらずアドバイスいただき助かりました。 どうもありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート見出しからシート名を右クリックして「コードの表示」を選択します。 表示な画面には例えば次のようなマクロを入力します。 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)
#1さん、D列のコピーですよ? =IF(D2="","",RIGHT(D2,2)) を下にコピー。
お礼
edomin7777さん 早速の回答ありがとうございます。 手動でコピーするのではなく、「最終行を取得し、自動で」行いたいのです。 関数やマクロをお教えいただきたいのですが..... よろしくお願いいたします。
- TinyPine
- ベストアンサー率30% (719/2386)
要求仕様と違うけど、E列に下記の関数を貼り付けておくのでは駄目ですか。 =IF(A7="","",RIGHT(A7,2))
お礼
KURUMITO様 早速の解答ありがとうございました。 No.4の方からご指摘がありましたように、「行・列・セル」の表現がごちゃごちゃになっておりました。 にもかわらず、意図をご理解いただきありがとうございました。 結果は、思い描いたいものが導き出されていて大変助かりました。 またとんちんかんな問い合わせをするかもしれませんが、機会がございましたら お答えいただけると幸いです。 どうもありがとうございました。