2017-05-10 3 views
0

私は簡単な質問があります。私は2つのワークブックを持っています.WBK1とWBK2を考えてみましょう。私がしようとしているのは、wbk2の特定の列のwbk1の列の各セル値を検索し、wbk2からwbk1の検索された値の隣接セルにオフセットセル値を返します。ExcelのVBAコード - 別のブックのセル値を検索し、隣接するセルを最初のブックにコピーします。

お手伝いできますか?ちなみに、もし私が助けてくれれば、私は次のコードを見つけることができました。 「=================

Sub find1() 

Dim Key 
Dim Target 
Dim Hnum 
Dim Success 
Dim wbk As Workbook 
Dim Lastrow As Long 
Dim one As Long 

Success = False 
Application.ScreenUpdating = False 

strSecondFile = "C:\Soroush\08- Technical\03- Stock\Test\PL_Test_01\PL_Test_01.xlsm" 
strFrthFile = "C:\Soroush\08- Technical\03- Stock\CNC_Test.xlsx" 
'== 

Sheets("sheet2").Select 

    Lastrow = ActiveSheet.UsedRange.Rows.Count 

    If Not IsEmpty(Cells(5, 9).Value) Then 
    Key = Cells(5, 9).Value 

For i = 5 To Lastrow 

' If Not IsEmpty(Cells(i, 9).Value) Then 
' Key = Cells(i, 9).Value 

Set wbk = Workbooks.Open(strFrthFile) 
With wbk.Sheets("Sheet1") 

    Set Target = Columns(1).find(Key, LookIn:=xlValues) 

    If Not Target Is Nothing Then 

     ActiveCell.Select 
     Selection.Copy 


     Set wbk = Workbooks.Open(strSecondFile) 
      With wbk.Sheets("Sheet2") 
       Sheets("Sheet2").Select 
        Cells(i, 10).Select 
         ActiveCell.Paste 


       If Not IsEmpty(Cells(i + 1, 9).Value) Then 
        Key = Cells(i + 1, 9).Value 

      End If 

     End With 

    End If 

End With 
'End If 

Next 
    End If 

End Sub 


'========================================================================= 

しかし、それは動作しませんし、私はそれを把握することはできません。私はこのマクロに関するコメントを感謝します。

乾杯

+0

'vlookup'式はここで答えです。あなたは確かにVBAでもvlookupを使うことができますが、おそらく必要はありません。式の形でそれに精通して少し時間を費やす。 – David

答えて

0

INDEXとMATCHを使用できます。この場合

enter image description here

、セルE2の値はB6へB2の値と照合されます。これは列Cに対して索引付けされ、列Cの値が戻されます。

* "哺乳類" のタイプミスを無視!

+0

私はマクロが必要です!別のワークブックのワークシートに行き、その仕事をする別のワークブックです。それは私が投稿したコードに似たものになります。 –

関連する問題