VBAで関数応用編

・別シートからVlookUp関数を使用して値を入力する

・別シートは毎回自動で作成させるため、シート名を変数

・WorkSheet関数を変数に置き換えて

Sub Sample2()

Dim i As Long, t As Long, Target As Variant   '★1

Dim b As String

Dim endrow As Long, S As Long

Dim A As Object, F As Worksheet, E As Object, C As Long

Dim cop As Variant

 

    b = Sheets("②価格集計").Range("U2").Value   '★2

    For S = 1 To Worksheets.Count        '★3

    

        If Worksheets(S).Name = b Then     '★★

            endrow = Worksheets(S).Range("A" & Rows.Count).End(xlUp).Row + 1 '★4

                For i = 3 To endrow

                    If Worksheets("②価格集計").Range("C" & i).Value <> "" Then

                    

                        Set A = Worksheets("②価格集計").Range("B" & i)

                        Set F = Worksheets(b)

                        Set E = F.Range("A:M") '範囲

                        C = 13 '列番

                        Target = WorksheetFunction.VLookup(A, E, C, False) '★5

                    

                        Worksheets("②価格集計").Range("U" & i).Value = Target '★6

                    End If

                Next i

        End If

    Next S

End Sub

 

★1、 Target As Variant

★2、 シート名を項目 VLookUp結果入力箇所

★3、 シートを検索する

★★、 シート名が有れば実行

★4、 検索シートの検索値の最終行取得

★5、 VLookUp関数結果をTargetへ格納

★6、関数結果の値を入力