2016-05-11 9 views
-1

同様の質問でスタックオーバーフローが検索されました。2つのExcelワークシートとコピーデータの2つの列(姓と名)を一致させる

が行18から開始し、18

enter image description here

行上の任意の一致名を無視するように1列の最初の名前の代わりと4.mobileシートの両方のシートに2列(氏名)と一致する必要が私はあなたがする必要があるすべてを理解していれば

enter image description here

Sub CopyBasedonSheet1() 

Dim i As Long 
Dim j As Long 
Sheet4LastRow = Worksheets("4. Mobile").Range("D" & Rows.Count).End(xlUp).Row 
sheet7LastRow = Worksheets("Contacts").Range("A" & Rows.Count).End(xlUp).Row 

    For j = 1 To Sheet4LastRow 
     For i = 1 To sheet7LastRow 
      If Worksheets("4. Mobile").Cells(j, 4).Value = Worksheets("Contacts").Cells(i, 1).Value Then 
       Worksheets("4. Mobile").Cells(j, 1).Value = Worksheets("Contacts").Cells(i, 3).Value 
       Worksheets("4. Mobile").Cells(j, 3).Value = Worksheets("Contacts").Cells(i, 4).Value 
       Worksheets("4. Mobile").Cells(j, 6).Value = Worksheets("Contacts").Cells(i, 5).Value 
       Worksheets("4. Mobile").Cells(j, 7).Value = Worksheets("Contacts").Cells(i, 6).Value 
       Worksheets("4. Mobile").Cells(j, 8).Value = Worksheets("Contacts").Cells(i, 7).Value 

      Else 
      End If 
    Next i 
Next j 
End Sub 
+0

あなたの質問は何ですか?何をしようとしているのですか、何をしましたか、何が起こったのですか? –

+0

2つの異なるシートから2つの列を一致させ、特定のデータをシート1に抽出します。上記のコードは1つの列に一致します。 – Newbee

+0

@scottcraner [yesterday](http://stackoverflow.com/questions/37125502/if-cell-in-column-partially-contains-text-in-another)で示されているように、 'sumproduct'を使ってこれを行うことができます。 -column/37125607#37125607)。 – findwindow

答えて

0

であるあなたの場合にAndを追加します。

Sub CopyBasedonSheet1() 

Dim i As Long 
Dim j As Long 
Sheet4LastRow = Worksheets("4. Mobile").Range("D" & Rows.Count).End(xlUp).Row 
sheet7LastRow = Worksheets("Contacts").Range("A" & Rows.Count).End(xlUp).Row 

    For j = 1 To Sheet4LastRow 
     For i = 1 To sheet7LastRow 
      If Worksheets("4. Mobile").Cells(j, 4).Value = Worksheets("Contacts").Cells(i, 1).Value _ 
       And Worksheets("4. Mobile").Cells(j, 5).Value = Worksheets("Contacts").Cells(i, 2).Value Then 
       Worksheets("4. Mobile").Cells(j, 1).Value = Worksheets("Contacts").Cells(i, 3).Value 
       Worksheets("4. Mobile").Cells(j, 3).Value = Worksheets("Contacts").Cells(i, 4).Value 
       Worksheets("4. Mobile").Cells(j, 6).Value = Worksheets("Contacts").Cells(i, 5).Value 
       Worksheets("4. Mobile").Cells(j, 7).Value = Worksheets("Contacts").Cells(i, 6).Value 
       Worksheets("4. Mobile").Cells(j, 8).Value = Worksheets("Contacts").Cells(i, 7).Value 

      Else 
      End If 
    Next i 
Next j 
End Sub 
+0

ありがとうございました....データがない場合(例:電話番号が見つからない場合)、手動で入力してメインコンタクトシートに記入する必要があります。そして連絡先のシートに挿入される名字の一致がない場合 – Newbee

+0

あなたはこれが何をするかを逆にする別のサブが必要になります。それは新しい質問です。単に新しい質問をする前に自分で試してみてください。これがあなたの現在の質問に答えたので、答えのチェックマークをクリックして正しいものとしてマークしてください。 –

+0

確かに...新しいサブを開けようとする。それを逆転させるためにインターネットを試してみる。同じスレッドのもう1つのクエリ、どのように私は18行目から始まり、18行目の上に一致する名前も無視するために4.mobileシート内の変更を行います。 – Newbee

関連する問題