dポイントプレゼントキャンペーン実施中!

VBA初心者なんですが、下の添付画像のデータなんで、名前が一致する商品の2番8番の数値を名前の数だけ抜き出してコピーしていきたいんですが、下のように一つ一つまとめていくと、余りにも名前の数が多いのでいつまでたっても終わりません。
何かいい方法はないでしょうか?ちなみに名前の数は300くらいあります。

Dim targetRange As Range
Set targetRange = Range("A5").CurrentRegion
Set targetRange = targetRange.Resize(targetRange.Rows _
.Count - 1, 1).Offset(1)
Range("A1") = Format (Application.WorksheetFunction.SumIf(targetRange _
.Offset(, 0), "paab01865", targetRange.Offset(, 3)) _
, "#,###")
Set targetRange = Nothing
Dim targetRange As Range
Set targetRange = Range("A5").CurrentRegion
Set targetRange = targetRange.Resize(targetRange.Rows _
.Count - 1, 1).Offset(1)
Range("B1") = Format (Application.WorksheetFunction.SumIf(targetRange _
.Offset(, 0), "paab01865", targetRange.Offset(, 8)) _
, "#,###")
Set targetRange = Nothing


何かいい方法がありましたら、お教えください。

「大量のデータを条件付で抜き出してコピー&」の質問画像

A 回答 (2件)

まずは、名称を比較するのであれば、最初に(名称で)ソートを


かけてからやったほうがいいと思いますよ。

そうすれば、名称が変わるまで処理をすれば言い訳ですし、
関係ない名前を比較しないでもすみますので。

これだけでもだいぶ処理スピードが変わるはずです。

後で元に戻したければ、一行NOを振っておくといいと思います。
時間が無くてソースが作れずすいません。
    • good
    • 0

提示されているコードと質問事項の関係がよく分からないのですが。



どこのデータをどこに貼付けたいのか?
またその条件は何か?
を文章にしてみては如何でしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!