Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


39963 / 76732 ←次へ | 前へ→

【41873】Re:データの集計方法について教えて下さい
回答  かみちゃん E-MAIL  - 06/8/24(木) 19:53 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>このコード私も動作させてみたのですがメモリ不足と
>出てしまいました。???

kazuoさん、申告ありがとうございます。
こちらで再度検証しましたところ、[#41865]で提示したコードにあきらかな間違い(エラーが出るはずです)と、
[#41871]のNedさんアドバイスによる改善点がありますので、再度コードを提示させていただきます。

Sub Macro2()
 Dim lngRow As Long
 Dim intCol As Integer
 Dim vntData As Variant
 Dim c As Range
 Dim LastCell As Range

 With Sheets("Sheet2")
  ReDim vntData(1 To .Range("A65536").End(xlUp).Row - 1, _
   1 To .Range("IV1").End(xlToLeft).Column - 2)
 End With

 Set LastCell = Range("A65536").End(xlUp) '★
 For Each c In Range("A2", LastCell)
  '「ロット」の位置を検索
  lngRow = Application.Match(c.Value, Sheets("Sheet2").Columns(1), 0) '★
  '「不良内容」の位置を検索
  intCol = Application.Match(c.Offset(, 2).Value, Sheets("Sheet2").Rows(1), 0) '★
  '内訳欄の計算
  vntData(lngRow - 1, intCol - 2) = _
   vntData(lngRow - 1, intCol - 2) + c.Offset(, 3).Value
  '合計欄の計算
  vntData(lngRow - 1, UBound(vntData, 2)) = _
   vntData(lngRow - 1, UBound(vntData, 2)) + c.Offset(, 3).Value
 Next
 '集計結果を書き込む
 Sheets("Sheet2").Range("C2").Resize(UBound(vntData, 1), UBound(vntData, 2)).Value = vntData
End Sub

なお、[#41860]の提示イメージのSheet2の「不良合計」より右側および最終のロットより下側に
値がないことが大前提です。
1行目およびA列の値が入っている最後の位置を探して、集計表の大きさを決めています。
あまりにも大きい表だと「メモリ不足」は起こるようですが、少なくとも提示いただいたイメージ
だけですと、動作することを確認しています。
必要であれば、確認したブック差し上げますので、ご連絡ください。

これでも駄目でしたら、配列を使わない方法を提案したいと思います。

0 hits

【41860】データの集計方法について教えて下さい K.K 06/8/24(木) 15:42 質問
【41862】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 15:52 発言
【41863】Re:データの集計方法について教えて下さい K.K 06/8/24(木) 16:19 発言
【41864】Re:データの集計方法について教えて下さい K.K 06/8/24(木) 16:30 発言
【41865】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 16:34 回答
【41866】Re:データの集計方法について教えて下さい K.K 06/8/24(木) 17:07 お礼
【41868】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 17:42 発言
【41869】Re:データの集計方法について教えて下さい kazuo 06/8/24(木) 18:18 発言
【41873】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 19:53 回答
【41874】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 19:57 発言
【41871】Re:データの集計方法について教えて下さい Ned 06/8/24(木) 18:58 発言
【41875】Re:データの集計方法について教えて下さい かみちゃん 06/8/24(木) 19:59 発言
【41876】Re:データの集計方法について教えて下さい Ned 06/8/24(木) 20:32 発言
【41889】Re:データの集計方法について教えて下さい kobasan 06/8/24(木) 23:11 発言
【41892】Re:データの集計方法について教えて下さい k.k 06/8/25(金) 10:54 お礼
【41912】Re:データの集計方法について教えて下さい jun 06/8/26(土) 2:25 質問
【41913】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 2:32 発言
【41914】Re:データの集計方法について教えて下さい jun 06/8/26(土) 2:41 発言
【41915】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 4:06 発言
【41923】Re:データの集計方法について教えて下さい jun 06/8/26(土) 9:09 発言
【41924】Re:データの集計方法について教えて下さい かみちゃん 06/8/26(土) 9:22 発言
【41926】Re:データの集計方法について教えて下さい jun 06/8/26(土) 9:45 発言
【41931】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 10:56 発言
【41932】Re:データの集計方法について教えて下さい jun 06/8/26(土) 11:15 お礼
【41952】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 22:32 発言
【41955】Re:データの集計方法について教えて下さい Ned 06/8/26(土) 23:24 発言
【41969】Re:データの集計方法について教えて下さい ichinose 06/8/27(日) 11:53 発言
【41970】Re:データの集計方法について教えて下さい jun 06/8/27(日) 12:01 お礼

39963 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free