[[20240730230706]] 『指定した任意の行で止めたい』(ネットカフェ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『指定した任意の行で止めたい』(ネットカフェ)

今のところ最下行まで動いていくチェンジイベントマクロなんですが

 For i = 1000 To Lrow'-------1000行目から始まって
 '任意の行で止めたい STOP = 5000 To Lrow なのかどうか分かりませんが
'例えば5000行など任意設定して、そこの行で止めたい場合の追加記述をお願いします。

< 使用 Excel:Excel2007、使用 OS:Windows10 >


 ストップさせたい位置が常に変動するといったことなんですか?
 質問の趣旨がよくわかりませんが。
 止める目的、止めて何をしたいかを書かれるとよいでしょう。

 終了させるなら、
 ・InputBox関数かなにかで、ストップさせたい位置(行番号)を入力させ、
 ・それをLrowに代入するようなコードにするとよいのでは?

 終了ではなく途中で止めるだけなら、
 i が 指定行と同じになったら、MsgBoxを表示する
 といったコードにすれば、ユーザー入力を待たせることができます。

 そのときの変数の内容を確認したいなどと言う目的なら、
 デバッグ手法のウオッチ式を利用することも考えられます。
 調べてトライしてみてください。 

(xyz) 2024/07/31(水) 06:58:43


ストップさせたい位置を、その時の用途によって変動させたいのです
今日は5000行で止めたい
次回は6000行で止めたい
何かいいモジュール内に追加記述方法があればいい感じです

For i = 1000 To Lrow
STOP i = 5000 To Lrow

     
5000の記述をある時は6000に、またある時は7000とか簡単に書き換えられるような手段があれば万々歳です。
(ネットカフェ) 2024/08/01(木) 19:15:42

コードはこんな感じです
これですと最下行まで実行してしまいます(十数万行)
途中Escキーによるブレークもあるのですが、あまりスマートとは言えないのです

Private Sub Worksheet_Change(ByVal Target As Range)

 Dim Lrow As Long, i As Long
 Lrow = Range("D" & Rows.Count).End(xlUp).Row
 If Intersect(Target, Range("B1")) Is Nothing Then
 Exit Sub
 Else
 For i = 1000 To Lrow'------------1000行目から始まって
 '任意の行で止めたい↓
'Stop i = 5000 To Lrow

 Cells(i, 4).Select
Next
 End If

 End Sub
(ネットカフェ) 2024/08/01(木) 19:24:35

xyzさんも確認されていることですが、『指定した任意の行で止めたい』とは、なんの目的でどのような処理を想定しているのですか?

↓も意味がよくわかりません。
>途中Escキーによるブレークもあるのですが、あまりスマートとは言えないのです

ただ、「i」が特定の数のときだけ○○するといった処理なら、If文などで条件分岐すれば実現できるとおもいます。

(もこな2 ) 2024/08/01(木) 20:09:30


 If i = 指定した数 Then Stop
 としてください。
 そのつど、指定した数のところを書き換えてください。

# 他人の意見に注目したり、確認質問に回答することは嫌いなようですね。

(xyz) 2024/08/01(木) 20:17:25


xyz様、動作OKでした

ありがとうございました

(ネットカフェ) 2024/08/01(木) 20:33:39


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.