| 
    
     |  | ▼PePe さん: >コードを書いたのですが、思った動作をしません、
 >   For k = 1 To LstR1
 >     For i = 1 To LstR2
 >       If .Cells(k, 1) <> Bk2.Sheets("sheet1").Cells(i, 1) Then
 >         Exit For
 >       End If
 >     Next i
 ↑この部分ですけど、For i = 1 To LstR2 で Bk2のシートをループして
 見つからなかったときは i が LstR2 +1 になっているんじゃないですか
 ⇒ ここに BK1への転記が必要になる、と思う
 >   Next k
 >   If k > LstR2 Then
 >      Bk2.Sheets("sheet1").Cells(i, 1).Copy .Cells(Rows.Count, 1).End(xlUp).Offset(1)
 >   End If
 
 と思ったけど、Bk1にないBk2のデータを Bk1 に転記したいんですよね?
 そしたら、
 For k = 1 to LstR2 ' Bk2のLoop
 もし Bk2Sheet の.Cells(k,1) の値が 「Bk1になかったら」
 Bk2Sheet の.Cells(k,1) の値を Bk1シートの最終行に転記
 End If
 Next
 と方向を逆にする必要があるんじゃないですか?
 
 あと、
 あるか/ないか の「検索」は Findメソッドとか もっと効率の良い
 方法がありますが。
 
 
 |  |