|
▼yumi さん:
>▼ぴかる さん
横から失礼します。
For I = 1 To 3
For J = 1 To 数万件
If Cells(1, I).Value = Sheets("データ").Cells(J, 1).Value Then
Cells(2, I).Value = Sheets("データ").Cells(J, 2).Value
End If
Next
Next
ですとCells(1, I).Value = Sheets("データ").Cells(J, 1).Valueが一致した後も
For Jが数万件分実行されるため時間がかかります。
If Cells(1, I).Value = Sheets("データ").Cells(J, 1).Value Then
Cells(2, I).Value = Sheets("データ").Cells(J, 2).Value
Exit For ’<===追加
End If
とすると少し早くなると思います。さらに頻度の高い検索対象のデータを
上部に配置すると効果が大きくなります。
あと、画面表示の更新を一時的に停止する、配列に取り込み処理して一括書き出し
などあると思います。
>
>早速の返信ありがとうございます。
>なるほどですー。
>列の件数などは固定ではなくて変動しそうなので
>そこのloopの部分は頑張って見ますね。
>
>1点だけ分かれば教えてください。
>「データ」のシート方なのですが、検索対象のデータが
>数万件ありまして、nextで回すと想像より時間がかかってしまいました。
>その他のやり方もありますでしょうか。
>
>よろしくお願いします。
|
|