2017-04-05 6 views
-1

VBA/Excelの新機能ですので、誰かが私を助けてくれるのだろうかと思っていました。VLOOKUPを使用して2つの異なるワークブックのデータをVBAと比較する

私の質問:
私は2つの異なるブックを持っていますが、これらのブックでは2つの列に共通のデータがあります。したがって、私はVLOOKUPを使用して2つの列を比較し、共通のデータがあるかどうかを確認しました。

詳細:
第一ワークブック:3枚の異なるシートを持って、私は列2

第二ワークブック内のデータを持っているシート「アイテム」を使用する必要があります:「データ」と呼ばれる唯一の1枚を持っており、列4にデータがあります。

私の目標は、2つの列を比較することです。 workbook1には、データ列の隣に空の列があります。一致がある場合は、「ok」と言います。一致しない場合は ""を返します。

私はVLOOKUPを試しましたが、本当に理解できませんでした。プラスこれは仕事のためです。

答えて

1

あなたはC2

=IF(ISNUMBER(MATCH(B2,'[Book2.xlsx]Data'!$D:$D,0)),"OK","") 

でまずワークブック で

...これを試してみてください、あなたの2番目のブックの名前を仮定し

がBook2.xlsx ..ですこれを試してみてくださいすることができ、それをコピーしてください。

VBAソリューションが必要な場合は、目的の出力を得るための1つの方法は以下のとおりです。 次のコードは、Book1.xlsm(以下のコードを含む)とBook2.xlsxの両方が同じフォルダ。 異なる場所に保存されている場合は、次のコード行でBook2.xlsxのパスと名前を変更します。

sourceFilePath = dwb.Path & "\" 
sourceFileName = "Book2.xlsx" 

コード:

Sub CompareData() 
Dim swb As Workbook, dwb As Workbook 
Dim sws As Worksheet, dws As Worksheet 
Dim slr As Long, dlr As Long, i As Long 
Dim sourceFilePath As String, sourceFileName As String 
Dim x, y, z, dict 
Application.ScreenUpdating = False 

Set dwb = ThisWorkbook 
Set dws = dwb.Sheets("Items") 
dlr = dws.Cells(Rows.Count, 2).End(xlUp).Row 
x = dws.Range("B2:B" & dlr).Value 
ReDim z(1 To dlr) 
sourceFilePath = dwb.Path & "\" 
sourceFileName = "Book2.xlsx" 

Workbooks.Open sourceFilePath & sourceFileName 

Set swb = ActiveWorkbook 
Set sws = swb.Sheets("Data") 
slr = sws.Cells(Rows.Count, 4).End(xlUp).Row 
y = sws.Range("D2:D" & slr).Value 

Set dict = CreateObject("Scripting.Dictionary") 

For i = 1 To UBound(y, 1) 
    dict.Item(y(i, 1)) = "" 
Next i 
swb.Close False 

For i = 1 To UBound(x, 1) 
    If dict.exists(x(i, 1)) Then 
     z(i) = "OK" 
    Else 
     z(i) = "" 
    End If 
Next i 
dws.Range("C2").Resize(UBound(x, 1), 1).Value = Application.Transpose(z) 
Application.ScreenUpdating = True 
End Sub 
+0

こんにちは、私はこのことを理解し、しかし、私は苦労していますなぜこのように優れていないVBAコードでそれを行う必要があります。 –

+0

これまでに試したことがあれば、スタートコードがありますか?はいの場合、あなたはそれにどのような問題がありますか? – sktneer

+0

私のソリューションにコードを追加しました。それが達成しようとしていることを確認してください。 – sktneer

関連する問題