2017-03-21 10 views
0

誰かが私のFuncが何もセルに書き込まない理由を教えてくれますか? 何も起こっているエラーはありません。VBAシート1からシート2に値を取り込むためのルックアップ

Sub VL_Depositors() 

On Error Resume Next 

Dim Dept_Row As Long 
Dim Dept_Clm As Long 
Dim Table1, Table2 As Range 

Worksheets("Search term report (1)").Select 
Set Table1 = Range("I2:I10") 

Worksheets("MySheet").Select 
Set Table2 = Range("E2:F39") 

Worksheets("Search term report (1)").Select 
Dept_Row = Sheet1.Range("F2").row 
Dept_Clm = Sheet1.Range("F2").Column 

For Each cl In Table1 
    Cells(Dept_Row, Dept_Clm) = Application.WorksheetFunction.VLookup(cl,Table2, 2, False) 
    Dept_Row = Dept_Row + 1 
Next cl 

End Sub 
+2

'エラーでNext'を再開し、それでエラーが行れている私たちに教えを削除します。 –

+0

F列に 'VLookup'の値を入れようとしていますか?行2から行10まで? –

+0

2行目から10行目。オフセットを以下のように変更しました。Cl.Offset(、1).Value –

答えて

0

(、そしてそれはTable2範囲で見つかったかどうかを確認するために(シート「という用語レポート(1)検索」から)私はあなたのコードで実現しようとしているものを理解している場合Table1範囲内のセルをループにあります「MySheet」シートから)。

見つかった場合は、Cl.Offset(, -3)を使用していることを示す「検索語レポート(1)」シートのF列に値を入力します。

また、Application.VLookupが値を見つけられない場合のエラーを処理する必要があります。

コード

Option Explicit 

Sub VL_Depositors() 

Dim Dept_Row As Long 
Dim Dept_Clm As Long 
Dim Table1 As Range, Table2 As Range 
Dim Cl As Range 

Set Table1 = Worksheets("Search term report (1)").Range("I2:I10") 
Set Table2 = Worksheets("MySheet").Range("E2:F39") 

For Each Cl In Table1.Cells 
    If Not IsError(Application.VLookup(Cl.Value, Table2, 2, False)) Then ' <-- VLookup was successful 
     ' use offset -3 columns >> 3 columns to the left of column "I" is column "F" 
     Cl.Offset(, -3).Value = Application.VLookup(Cl.Value, Table2, 2, False) 
    Else 
     Cl.Offset(, -3).Value = "Value not Found!" 
    End If 
Next Cl 

End Sub 
+0

こんにちは ありがとうございました!あなたは正しく理解しました、私はちょうどオフセットプロパティを変更しました。 –

関連する問題