|    | 
     ▼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メソッドとか もっと効率の良い 
方法がありますが。 
 
 | 
     
    
   |