2017-06-26 13 views
0

私は2枚のシート、シート1とシート2を持っています。VBA、Excelでの参照を使用

シート1が27列を有し、シート2は、10列、

Iは、シート1のidを探しカラムJシート2、列G中の対応する日付が必要いを有します。

Iシート1の欄AAに印刷するには、対応する日付が必要です。シート2、私は、次のベロVBAを使用してい

は、これは式であるシート2カラムG.

のinstedの

= IFERROR(VLOOKUP(J2を列Dを印刷しています! $ A:$ 1; 7; 0); "")私はいけない

は、マクロの記録機能を使用したいです。親切にも、コードを修正する手助けをしてください。

Sub lookup() 

Dim totalrows As Long 
Dim totalcolumn As Long 
Dim rng As Range 
Dim rng1 As Range 
Dim i As Long 

totalrows = ActiveSheet.UsedRange.Rows.Count 

For i = 2 To totalrows 

Sheets("Sheet1").Select 

Set rng = Sheets("Sheet2").UsedRange.Find(Cells(i, 10).Value) 

If Not rng Is Nothing Then 

Cells(i, 27).Value = rng.Value 

End If 

Next i 

End Sub 
+0

''多分rng.offset(X 0、)? –

+0

なぜrng.Offsetですか?列gの日付が必要です。他のデータが必要な場合は、私はOffsetを使うことができると思います。 – Mikz

+0

@ Nathan_Sav列Dからの対応するデータを貼り付けているかどうかまだわかりません。この場合、コード内にキーポイントがありません。 – Mikz

答えて

0

の代わりに使用することができFORループ:

Sheets("Sheet1").Range("AA2:AA" & totalrows).Formula = Application.WorksheetFunction.IfError(Application.VLookup(Sheets("Sheet1").Range("J2:J15"), Sheets("Sheet2").Range("$A:$L"), 7, 0), "") 

EDIT:_____________________________________________________________________________

Sub lookup() 
    Dim totalrows As Long, totalrowsSht2 As Long 
    totalrows = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row 
    totalrowsSht2 = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row 
    Sheets("Sheet1").Range("AA2:AA" & totalrows).Formula = Application.WorksheetFunction.IfError(Application.VLookup(Sheets("Sheet1").Range("J2:J" & totalrowsSht2), Sheets("Sheet2").Range("$A:$L"), 7, 0), "") 
End Sub 
関連する問題