|
昨日「複数の異なる値を取り込んで、順に処理したいです」という質問をさせていただいた者です。その節はお世話になりました。
この際、回答者の方に作って頂いたコードを自分の手元の表に応用する方法で、また悩んでいます。
手元の表は(違う形式もありますが)縦にはセルe8からe16まで、7個空けてe24からe32まで、とこれが下に25回並んでおり、横方向にはe8から2個空けてh8からh16まで、また2個空けてk8からk16までという具合に、こちらは27回並んでいます。
これを、昨日の回答で頂いた以下のコードの「r」に入れたいのですが、どのような方法が良いか、ご指導いただけませんでしょうか。
自分では(E8:E16,E24:E32,E40:E48,E56:E64,E72:E80,E88:E96,E104:E112,E120:E128)と羅列するような方法しか思いつきませんでした。
よろしくお願いいたします。
Sub test()
Dim a, b As Variant
Dim i As Long
Dim r As Range
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
Set r = Range("e8", Range("e8").End(xlDown))
a = r.Value
b = r.Offset(, -2).Value
For i = 1 To 9 'UBound(b)
If Not dic.Exists(b(i, 1)) Then
dic(b(i, 1)) = a(i, 1)
ElseIf dic(b(i, 1)) < a(i, 1) Then
dic(b(i, 1)) = a(i, 1)
End If
Next
'縦25回
'横27回
For i = 1 To 9 'UBound(b)
a(i, 1) = dic(b(i, 1))
Next
r.Value = a
End Sub
|
|