重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【6/2終了】教えて!goo新規会員登録

(指定列の値の入った最終行を知る方法について)
B列の最終行(値の入っている最終行)を求める方法で
=MAX(INDEX((LEN($B$1:$B$9999)>0)*ROW($B$1:$B$9999),0))というのを知り、

マクロの記録で
ActiveCell.FormulaR1C1 = _
"=MAX(INDEX((LEN(R1C2:R9999C2)>0)*ROW(R1C2:R9999C2),0))"
となりました。

これをセルに式を代入せずに(ActiveCell.FormulaR1C1 =を使わないで)
マクロ記述するとすれば、どうすればいいのか教えてください

質問者からの補足コメント

  • うーん・・・

    実はB列には式が入っており(if 文で、別シートのセル値により、ヌル→”” or ある値 を表示させています)
    (例) B100=if (sheet1!a100="" , "" , "入力済み" )など
    私としては、関数や値が入った最終行でなく、表示する値がnullでないものの最終行を知りたいと思っています。
    ActiveCell.FormulaR1C1 = _
    "=MAX(INDEX((LEN(R1C2:R9999C2)>0)*ROW(R1C2:R9999C2),0))" を
    セルに式を代入しないで、マクロの中の計算だけでこの値を求めることはできないのだろうかと
    いろいろやってみましたがうまくいきませんでした。
    もしよろしければ、アドバイスお願いします。

      補足日時:2020/06/13 14:12

A 回答 (3件)

No.2です。



数式が入っていて空白でない最終行を取得したい!というコトですね。

Sub Sample1()
 Dim i As Long
  For i = Cells(Rows.Count, "B").End(xlUp).Row To 1 Step -1
   If Cells(i, "B") <> "" Then Exit For
  Next i
   ActiveCell = i
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

わぁ~即答していただいたのですね。ありがとうございます。
私でも理解できました。ありがとうございます。

お礼日時:2020/06/13 14:17

こんにちは!



>セルに式を代入せずに(ActiveCell.FormulaR1C1 =を使わないで)
というコトは
単にB列の最終行の行番号を表示するだけで良いのですね。

そうであれば・・・

ActiveCell = Cells(Rows.Count, "B").End(xlUp).Row

くらいで大丈夫だと思います。m(_ _)m
    • good
    • 0
この回答へのお礼

こんなに早く教えて頂けてありがとうございます。
実はB列には式が入っており(if 文で、別シートのセル値により、ヌル→”” or ある値 を表示させています)
(例 =if (sheet1!a1="" , "" , "入力済み"など)  )
教えて頂いた式を試してみたら、式をコピーした最終行が表示されました。

私としては、セルの値としてnullでないものが表示されている最終行が求まるとありがたいのです。
もしよろしければ、アドバイスお願いします。

お礼日時:2020/06/13 13:57

ActiveCell.Value = Cells(Rows.Count,"B").End(xlup).Row



でしょうか?
    • good
    • 0
この回答へのお礼

こんなに早く教えて頂けてありがとうございます。
実はB列には式が入っており(if 文で、別シートのセル値により、ヌル→”” or ある値 を表示させています)
(例 =if (sheet1!a1="" , "" , "入力済み"など)  )
教えて頂いた式を試してみたら、式をコピーした最終行が表示されました。

私としては、セルの値としてnullでないものが表示されている最終行が求まるとありがたいのです。
もしよろしければ、アドバイスお願いします。

お礼日時:2020/06/13 13:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!