• ベストアンサー

大量のデータを条件付で抜き出してコピー&ペーストしたいんですが、データが多すぎるので…

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 何かいい方法がありましたら、お教えください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

まずは、名称を比較するのであれば、最初に(名称で)ソートを かけてからやったほうがいいと思いますよ。 そうすれば、名称が変わるまで処理をすれば言い訳ですし、 関係ない名前を比較しないでもすみますので。 これだけでもだいぶ処理スピードが変わるはずです。 後で元に戻したければ、一行NOを振っておくといいと思います。 時間が無くてソースが作れずすいません。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

提示されているコードと質問事項の関係がよく分からないのですが。 どこのデータをどこに貼付けたいのか? またその条件は何か? を文章にしてみては如何でしょう。

関連するQ&A