|
74 さん n さん、こんにちは
Join 初めて使いました。
50行程度のサンプルでは、速さの違いは実感できませんでしたが。
Loopが少ない分、メンテの時に良いのか?
Sub hikaku2()
Dim ShA_lC As Long 'Aシート最終列
Dim ShA_lr As Long 'Aシート最終行
Dim ShB_lr As Long 'Bシート最終行
Dim ShC_lr As Long 'Cシート最終行
Dim i As Long, ii As Long
Dim v As Variant, w As Variant
Dim J1 As String, J2 As String
ShA_lC = Worksheets("A").Cells(1, Columns.Count).End(xlToLeft).Column
ShA_lr = Worksheets("A").Cells(Rows.Count, 1).End(xlUp).Row
ShB_lr = Worksheets("B").Cells(Rows.Count, 1).End(xlUp).Row
ShC_lr = Worksheets("C").Cells(Rows.Count, 1).End(xlUp).Row
With Worksheets("A")
For i = 1 To ShA_lr
v = .Cells(i, 1).Resize(, ShA_lC).Value '比較する行を配列に収納
For ii = 1 To ShB_lr
w = Worksheets("B").Cells(ii, 1).Resize(, ShA_lC).Value '比較される行を配列に収納
J1 = Join(Application.Index(v, 1, 0)) 'ローカルウインドウで確認用
J2 = Join(Application.Index(w, 1, 0))
If J1 = J2 Then
Worksheets("C").Cells(ShC_lr, 1).Resize(, ShA_lC).Value = _
.Cells(i, 1).Resize(, ShA_lC).Value
ShC_lr = ShC_lr + 1
GoTo A
End If
Next ii
A:
Next i
End With
* nさん いつもありがとうございます。
|
|