トップページ > プログラム > 2016年05月10日 > IdRScl5y

書き込み順位&時間帯一覧

1 位/244 ID中時間01234567891011121314151617181920212223Total
書き込み数0110213000000000000000008



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part41©2ch.net

書き込みレス一覧

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
了解しました。ありがとうございます。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。