エクセル2007を使用しています。
VBAを使って以下の事がやりたいです。
A列に商品、B列にロットNoとあります。
CD列、EF列、GH列にそぞぞれ日付、出荷台数とあります。
VBAを実行すると、「シート2」に以下のような表を作成したいです。
A列に商品、B列にロットNoとあります。
「シート1」のCD列、EF列、GH列に記載されている日付、出荷台数を
商品、ロットに合わせて、シート2のC列日付、D列出荷台数に転記したいです。
商品数が1000を超えるくらいあり高速処理したいです。
途中までコードを考えてみました。
Public Sub リスト化() Dim myDic As Object Dim i As Long, j As Long Dim ary1() Dim ary2() Dim maxrow As Long Application.ScreenUpdating = False Application.EnableEvents = False Set myDic = CreateObject("Scripting.Dictionary") With Sheets("シート1") maxrow = .Cells(.Rows.Count, 1).End(xlUp).Row ary1 = .Range(.Cells(2, 1), .Cells(maxrow, 2)).Value For i = LBound(ary1) To UBound(ary1) myDic.Item(ary1(i, 1) & "," & ary1(i, 2)) = .Range(.Cells(i + 1, 3), .Cells(i + 1, 8)).Value Next i End With With Sheets("シート2") maxrow = .Cells(.Rows.Count, 1).End(xlUp).Row Erase ary1 '配列の初期化 ary1 = .Range(.Cells(2, 1), .Cells(maxrow, 2)).Value 'ここにどのようなコードを書けばいいのか分かりません。 ' For i = LBound(ary1) To UBound(ary1) ' ' ' Next End With Set myDic = Nothing Application.EnableEvents = True Application.ScreenUpdating = True End Sub
データを配列から書き出す時のコードが分かりません。
教えて下さい。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。