| 
    
     |  | 下記の”A1”のところを”D10”に変更しても うまくできないんですが。。。
 
 うまくできる方法を教えていただけないでしょうか?
 
 Set r1 = WS1.Range("A1", WS1.Cells(WS1.Rows.Count, 1).End(xlUp))
 Set r2 = WS2.Range("A1", WS2.Cells(WS2.Rows.Count, 1).End(xlUp))
 
 
 ▼シン さん:
 >こんばんわ。
 >以前、条件移動についてご質問させて頂き
 >下記のように教えて頂きました。
 >下記のプログラムはsheet1のA1とsheet2のA1を比較し
 >これらが同じの場合のみsheet2からsheet1コピーするようなものです。
 >
 >しかし、困ったことに、A1の列でしか比較ができずにいます。
 >たとえば、sheet1のD10〜D30の列とsheet2のB7からB27まで
 >比較し下記のような動作ができるようにしたいのですが。
 >教えて頂けないでしょうか?
 >
 >下記は以前教えて頂いた型です。
 >-----------------------------------------------------------
 >
 >
 >Sub Try1()        'WS2 → WS1
 >  Dim WS1 As Worksheet
 >  Dim WS2 As Worksheet
 >  Dim r1 As Range, c As Range
 >  Dim r2 As Range
 >  Dim r22 As Range
 >
 >  Set WS1 = Worksheets("Sheet1")
 >  Set WS2 = Worksheets("Sheet2")
 >
 >  Set r1 = WS1.Range("A1", WS1.Cells(WS1.Rows.Count, 1).End(xlUp))
 >  Set r2 = WS2.Range("A1", WS2.Cells(WS2.Rows.Count, 1).End(xlUp))
 >  Set r22 = r2.Offset(, 2).Resize(, 5)
 >  Dim m
 >  r1.Offset(, 2).Resize(, 5).ClearContents
 >  For Each c In r1
 >    m = Application.Match(c, r2, 0)
 >    If IsNumeric(m) Then
 >      r22.Rows(m).Copy c(1, 2)
 >    End If
 >  Next
 >
 >End Sub
 
 |  |