Dictionaryオブジェクトを使って割り付けをしています。
2つのシートがあります。
『抽出結果』シートと『条件』シートです。
『条件』シートのA列、B列、c列にデータが入っています。
『抽出結果』シートのA列、B列にデータが入っています。
やりたいことは、
『抽出結果』シートのA列とB列のデータと『条件』シートのA列とB列のデータが一致したら
『条件』シートのC列のデータを『抽出結果』シートのC列に記載する。
先日このサイトで教えてもらったコードを自分なりに変更して書いてみました。
Public Sub dic_04_2() Dim mydic As Object Dim i As Long Dim ary1 Dim ary2(2 To 180000, 0) As Long Dim maxrow As Long Application.ScreenUpdating = False Application.EnableEvents = False Set mydic = CreateObject("Scripting.Dictionary") With Sheets("条件") maxrow = .Cells(Rows.Count, 1).End(xlUp).Row ary1 = .Range(.Cells(2, 1), .Cells(maxrow, 3)) For i = maxrow To 2 Step -1 mydic(ary1(i - 1, 1) & "," & ary1(i - 1, 2)) = ary1(i - 1, 3) Next i End With With Sheets("抽出結果") maxrow = .Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To maxrow ary2(i, 0) = mydic.Item(.Cells(i, 1).Value & "," & .Cells(i, 2).Value) Next .Range(.Cells(2, 3), .Cells(maxrow, 3)) = ary2 End With Set mydic = Nothing Application.EnableEvents = True Application.ScreenUpdating = True End Sub
エラーにはならないですが、2つの条件に一致するように上手く処理されません。
修正点を教えて下さい。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/01 09:12
2017/05/02 01:44