- Excel VBA 質問スレ Part41©2ch.net
196 :デフォルトの名無しさん[sage]:2016/05/10(火) 02:05:42.50 ID:wnAOqKt0 - 以下の条件の時はLoopし続ける
Not (fnd Is Nothing) → fnd変数がNothingでは無い And (fnd.Address <> fad) → かつ fndセルのアドレスがfadと一致しない And (Sheet2.Cells(a2,14).Value=num) → かつ Sheet2.Cells(a2,14).Valueとnumが一致 つまり以下の場合にLoopから抜ける ・fndがNothingになった時 ・または fndセルのアドレスがfadと一致した時 ・または Sheet2.Cells(a2,14).Valueとnumが一致しない
|
- Excel VBA 質問スレ Part41©2ch.net
198 :デフォルトの名無しさん[sage]:2016/05/10(火) 03:51:15.80 ID:wnAOqKt0 - >>197
そうなるかも・・・加えて言えば、(Not fnd Is Nothing) と (fnd.Address <> fad)の 条件部分もVBだと両立しないのでNothingの判定はいらないかも ※fnd変数のNothing 判定を並列のIF条件に書くと fndがNothing の時にたぶん実行時エラーが出る ループの条件はたぶん以下のように省略できる Do 〜(ループ処理) Set fnd = Sheet2.Columns(14).FindNext(fnd) Loop While (fnd.Address <> fad)
|
- Excel VBA 質問スレ Part41©2ch.net
203 :デフォルトの名無しさん[sage]:2016/05/10(火) 06:06:50.39 ID:wnAOqKt0 - >>202
fndの値は確かに最初の行に戻って抜けてしまうが、 FindNext直前のIf文の所で 変数 a2 に最新日付の行番号を取得しているようだし Loopを抜けた後はそれを使えば欲しい行は持ってこれると思う Sheet2.Rows(a2) Sheet2.Cells(a2, [列番号])
|
- Excel VBA 質問スレ Part41©2ch.net
204 :デフォルトの名無しさん[sage]:2016/05/10(火) 06:19:28.37 ID:wnAOqKt0 - Range.Find , FindNext は検索の終端を検知できずループしてしまうから
最初のアドレスと比較することでループを抜ける条件にしてるんじゃないかな
|