|
まず気づくのは、マッチしたあとも比較を続けていること。
マッチして作業が終わったら Exit Forするとそれだけでも 1/2 になります。
ただこのような場合、一つずつ突き合わせをしていくのは効率が悪いです。
Dictionaryというデータ構造を使うと、それに備わった高速の検索機能が活かせて、
もっと早く突き合わせができます。
これを使うと良いと思います。
例えば、こんな書き方です。(未検証なのでまちがっていたら失礼)
Sub yokonarabi2()
Dim dic As Object
Dim i As Long, ii As Long
Dim r As Long
Dim saishuA As Long, saishuE As Long
Set dic = CreateObject("Scripting.Dictionary")
'A列(コード)の最終セル
saishuA = Cells(Rows.Count, 1).End(xlUp).Row
'E列(作業列)の最終セル
saishuE = Cells(Rows.Count, 5).End(xlUp).Row
For ii = 2 To saishuE
dic(Cells(ii, 5).Text) = ii
Next
For i = 2 To saishuA
r = dic(Cells(i, 1).Text)
Range(Cells(i, 2), Cells(i, 3)).Copy _
Destination:=Cells(r, Columns.Count).End(xlToLeft).Offset(0, 1)
Next
End Sub
|
|