• ベストアンサー

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

お世話になります。 任意の最終行番号を取得し、他の列でコピー時にその行番号までコピーしたいと考えております。 添付の例では、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

  • 最終行までコピーする

    A1「単価」,B1「数量」の表があります C1「売上」としてC2にa2*b2の式をいれc列の最終行までコピーしたいのです。A列、B列にブランクはありません。最終行は決まっていません 似たようなサンプルは見かけるのですがピタリのは見つけられませんでした。 当方まだマクロの入り口をウロウロしている程度なのでよろしくお願いします

  • エクセルのマクロ作成で困っています。任意の列(〇列1行目)から0001

    エクセルのマクロ作成で困っています。任意の列(〇列1行目)から0001-安部 0002-安藤 0003-木下・・と入力された列があります(番号は3桁あるいは4桁です)。そして、例えば最後の入力されたセルの行番号が56だとして、そこに入力されたものが「0056-名前」であるか確認するマクロを作りたいのですが、どのように記述すればよいでしょか?確認したいのは番号(この場合'0056')のみで良いのですが・・。

  • 文字の場合でもA列の最終行の行番号を取得するには

    A列の最終行の行番号を、 =MATCH(10^10,A:A) を使えば取得できますが、 これはA列にの最終行が数値の時だけで、文字列が最終行の場合は無視されるようです。 文字列でも取得する方法はありますか? 10^10の部分を変更すればいいと思いますが、どうすればいいですか?

  • 最終行を取得して別列にコピー

    最終行を取得して、別の列にコピーするVBAを教えてください。 具体的には、次の通りです。 (1)A2から下方に項目NOが入っています。可変です。  A2から項目NOの最終行までの行数をカウントします。 (2)B3:D3には数式が入っています。  B4:D4以下に数式を(1)で取得した行数分だけコピーします。 かなり緊急で困っています。 教えていただけると助かります。

  • 最終行を取得して、別の列にコピーするマクロ

    最終行を取得して、別の列にコピーするVBAマクロを教えてください。 (Excel2003です) 具体的には、次の通りです。 (1)A2から下方に項目NOが入っています。可変です。  A2から項目NOの最終行までの行数をカウントします。 (2)B3:D3には数式が入っています。  B4:D4以下に数式を(1)で取得した行数分だけコピーします。 かなり緊急で困っています。 教えていただけると助かります。

  • <EXCEL> 任意のデータが含まれる行の抽出

    こんにちは。 任意の値が含まれる行を抽出し、その行をコピーしたいのですが 目視でやっているために、非常に時間が掛かっております。 また、上記に加え 任意の値が含まれる行の中からD列にあるデータだけを コピー&ペーストというところまでできますでしょうか? 上記2点が出来ますと、非常に作業効率が上がりますので 何とかお助けください。

  • 任意の列で特定の文字の行をすべてコピーするには

    いつもお世話になっております。 Excelで任意の列(R列)に特定の文字("11")の行を全てコピーし、他のブックのシートに貼り付けるにはどのようにすればよいでしょうか。 複数行を一度にコピーして張り付けるという作業がうまくいきません。 できればAutoFilter以外の方法でよろしくお願いします。

  • 該当行の最終列にコピーする

    すべて windows7 使用するPCによってoffice2007、2010とoffice xp Sheet1A1:D1000の表をSheet2&3A1:BZ1000の表該当セルにコピー(書式、セルフォント色とも)します。 Sheet1 1行めはタイトル行です。 Sheet1A2の値(英数字)をSheet2&3A:Aから検索し、その行の最終列の次列からSheet1B2:D2の値(B2は文字列C2は日付D2は文字列)をコピー(書式、セルフォント色とも)します。

  • エクセル:データが入った最終行の行番号の取得

    お世話になります。 A列にいろいろデータが入っているとして、データが入っている一番下(最終行)の行番号をB1のセルに表示させるにはどういう計算式で出来るでしょうか? A列のデータは数値だけでなく文字列も含みます。また途中空白セルもあります。 A1~A20にデータが入っているときはB1に20と表示させる。 よろしくお願いします。

  • シート1のC列の最終行をコピーして同じ行に値貼り付けしたい

    シート1のC列の最終行を取得して その行を丸々値貼り付けするマクロを作りたいと思います。 シート3のB18の値をシート1のC列の最終行の1つ下のセルに値貼り付け すると、その行のA、B列に日付が入力される関数が入っています。(下まで) 関数が入ったままだと、うまくいかない時があるので最終行をコピーして値貼り付けしたいのですが、マクロの作り方を教えてください。 シート1の最終行に貼り付け Sheets("Sheet3").Select Range("B18").Select Selection.Copy Sheets("Sheet1").Select Range("C65536").End(xlUp).Offset(1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End Sub 最終行をコピーして値貼り付け Dim 最終行 As Integer 最終行 = Range("C65536").End(xlUp).Row Range("A6:C" & 最終行).Select Selection.Copy Sheets("Sheet1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False End Sub このマクロだと、A6からC列の最終行まで全てコピーされてしまうので、C列の最終行のAからC列まで1行だけコピーできないでしょうか?

専門家に質問してみよう