- Excel VBA 質問スレ Part41©2ch.net
195 :デフォルトの名無しさん[]:2016/05/10(火) 01:32:49.02 ID:IdRScl5y - 以前全く別の場所で教えてもらったExcelのVBAで意味が理解できないところがあり、おわかりに
なられるのであれば、意味を教えていただきたいのですが、 For a = 2 To Lastrow1 ※Lastrow1はSheet1の最終行 @Set fnd =(Sheet2.Columns(14).Find(Sheet1.Cells(a,4).Value) if Not (fnd Is Nothing) Then Day=DateSerial(2000,1,1) num=Sheet2.Cells(fnd.Row,14).Value fad=fnd.Address Do If Sheet2.Cells(fnd.Row,12).Value > Day Then a2=fnd.Row Day=Sheet2.Cells(a2,12).Value End If Set fnd = Sheet2.Columns(14).FindNext(fnd) Loop While Not fnd Is Nothing And fnd.Address <> fad And Sheet2.Cells(a2,14).Value=num Sheet2の12列目には日付が入っており、14列目には番号が入っています。 それを一致させているのはわかるのですが、特にLoopを抜ける条件のところが 理解できません。おわかりになる方はいらっしゃいますでしょうか?
|
- Excel VBA 質問スレ Part41©2ch.net
197 :デフォルトの名無しさん[]:2016/05/10(火) 02:21:30.80 ID:IdRScl5y - >196
ありがとうございます。 Set fnd = Sheet2.Columns(14).FindNext(fnd) で最初の検索から、更に同じ番号のセルがないかを検索して、 見つかった場合は、fnd内にその見つかった番号が入ると思うのですが、 そうなると、検索で番号が見つかっているので既に番号の一致はとれていて、 更にSheet2.Cells(a2,14).Valueとnumの番号の一致をとっているのは、 2重で一致をとっていることになるのでしょうか? 文章が下手ですみません。
|
- Excel VBA 質問スレ Part41©2ch.net
199 :デフォルトの名無しさん[]:2016/05/10(火) 04:06:59.93 ID:IdRScl5y - >>198
ありがとうございます。 Sheet2の14列目に同じ番号が複数あり、番号だけで比較すると、 古い行がヒットしてしまうので、12列目に日付も書いてあり、 最新の状態の行を確認して、その結果を反映させたかったのですが、 アドレスの不一致だけで大丈夫なのでしょうか?
|
- Excel VBA 質問スレ Part41©2ch.net
201 :デフォルトの名無しさん[]:2016/05/10(火) 04:46:33.24 ID:IdRScl5y - >>200
試してはいるのですが、少し行数も多く確認に時間がかかってしまっています。 すみません。
|
- Excel VBA 質問スレ Part41©2ch.net
202 :デフォルトの名無しさん[]:2016/05/10(火) 05:27:34.40 ID:IdRScl5y - >>198
すみません。うかがいたいのですが、 Set fnd = Sheet2.Columns(14).FindNext(fnd) Loop While (fnd.Address <> fad) の場合、アドレスが一致するまでループを繰り返す、 一致したらループを出る、という事だと思うのですが、 例えば、同じ番号の行が2行あったとして、 その2行目の方が新しい日付の行だとして、その行をこの後に続く 条件式に当てはめていきたいのです。 で、一致するまでという事は、最初の検索で1行、FindNextで更に検索で 日付の新しい番号の一致するもう1行、でまた検索で 最初の1行でアドレスが一致してループが抜ける・・・合計3回検索することになると思うのですが、 最終的にループを出る時は、最初の行で抜けてしまう気がするのですが、 その解釈は間違ってますでしょうか?
|
- Excel VBA 質問スレ Part41©2ch.net
205 :デフォルトの名無しさん[]:2016/05/10(火) 06:21:27.00 ID:IdRScl5y - >>202
本当にありがとうございます! なるほど、確かにループは抜けてもa2にはその前の状態ですね! やっと意味がある程度わかりましたw
|
- Excel VBA 質問スレ Part41©2ch.net
207 :デフォルトの名無しさん[]:2016/05/10(火) 06:26:26.62 ID:IdRScl5y - >>204
あ、なるほど。Findだけだと検索し続けてしまうのですね。
|
- Excel VBA 質問スレ Part41©2ch.net
208 :デフォルトの名無しさん[]:2016/05/10(火) 06:28:47.47 ID:IdRScl5y - >>206
了解しました。ありがとうございます。
|