アプリ版:「スタンプのみでお礼する」機能のリリースについて

LastRow = Cells(Rows.Count, 8).End(xlUp).Rowで
For i = 2 To LastRowでやってますが、
最終行に文字列でENDと入れてそこまでを最終行にしたいのですが、
うまい方法ありますか?

A 回答 (3件)

while文が一般的ですね。


untilも使えないことはない。
まぁ好みです。
    • good
    • 1
この回答へのお礼

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

お礼日時:2019/09/26 19:02

その場合ForではなくDoを使いましょう


i=2
Do Until Cells(i,8).Value = "END"
 処理
 i = i + 1
Loop
こんな感じでしょうか
自分はマスタ検索等の際には上記"END"を""にして、データ終端まで
ループさせています
    • good
    • 0
この回答へのお礼

ありがとうございます。Doが速かったです。

お礼日時:2019/09/26 19:02

> 最終行に文字列でENDと入れてそこまでを最終行


手入力あるいは別の何かで"END"の文字列が入ったセルがあるならば、MATCHでその行位置を求めてもいいように思います。

(End(xlUp).Row、End(xlDown).Row)以外の方法を求める理由はなんでしょうか。

> For i = 2 To LastRowでやってますが
何かの処理を2行目から順に下にやっていくのであれば、最終行(その次の行は何もない)のところで止める No.1、No.2の回答が楽だと思います。
    • good
    • 0
この回答へのお礼

1万件程度のデータなのにLastRowが85000とか大きな値になってします。のでちょっと時間かかるのでもっと速くならなかと思いました。Doで結構早かったのでDoにしようと思います。

お礼日時:2019/09/26 19:05

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