다른 시트의 정보를 참조하여 값 세트

2381 단어 ExcelVBA
[기능]
Sheet2의 공급자 마스터를 참조하면서, SHEET1의 C열, D열,...의 정보를 메워 가는 이미지가 되고 있습니다.

Sheet1


Sheet2


코드가 다음과 같습니다.
※사진은 어디까지나 기능의 이미지이며, 아래의 코드에 셀의 행 번호와 사진이 일치하지 않는 곳이 있으므로, 주의해 주세요.
Sub vlookupItemValues()
    Dim SHEET1 As Worksheet             ' 駆動表シート
        Set SHEET1 = Worksheets("Sheet1")

    Dim SHEET2 As Worksheet             ' 突合先シート
        Set SHEET2 = Worksheets("Sheet2")

    Dim SHEET1_GYO As Long          ' 処理対象の開始行
    Dim SHEET2_GYO As Long

    Dim SHEET1_GYO_CNT As Long          ' 件数計上
        SHEET1_GYO_CNT = 0      ' 処理件数

    Dim SHEET1_ITEMS_COL_START As Long  ' 編集先のセルの列番号 (変動値)

    Dim SHEET1_KEY1 As String
    Dim SHEET2_KEY1 As String
    Dim SHEET2_ITEM2 As String
    Dim SHEET2_ITEM3 As String

    '駆動表のルール
    SHEET1_GYO = 3  'sheet1の対処データ範囲(3行目から~空白のセルの行まで)
    Do Until SHEET1.Cells(SHEET1_GYO, 1).Value = ""

        SHEET1_KEY1 = SHEET1.Cells(SHEET1_GYO, 1).Value
        SHEET1_ITEMS_COL_START = 9

        SHEET2_GYO = 2  'sheet2のVlookup範囲(2行目から~空白のセルの行まで)
        '突合先シート
        Do Until SHEET2.Cells(SHEET2_GYO, 1).Value = ""
            SHEET2_KEY1 = SHEET2.Cells(SHEET2_GYO, 1).Value
            SHEET2_ITEM2 = SHEET2.Cells(SHEET2_GYO, 2).Value
            SHEET2_ITEM3 = SHEET2.Cells(SHEET2_GYO, 3).Value

            If SHEET1_KEY1 = SHEET2_KEY1 Then   '突合のKEY
              SHEET1.Cells(SHEET1_GYO, SHEET1_ITEMS_COL_START).Value = SHEET2_ITEM2
              SHEET1_ITEMS_COL_START = SHEET1_ITEMS_COL_START + 1
              SHEET1.Cells(SHEET1_GYO, SHEET1_ITEMS_COL_START).Value = SHEET2_ITEM3
              SHEET1_ITEMS_COL_START = SHEET1_ITEMS_COL_START + 1
            End If
            SHEET2_GYO = SHEET2_GYO + 1
         Loop

         SHEET1_GYO_CNT = SHEET1_GYO_CNT + 1
         SHEET1_GYO = SHEET1_GYO + 1
    Loop

    ' 終了の表示
    MsgBox "完了しました。" & vbCr & _
        "レコード件数=" & SHEET1_GYO_CNT & "件"
End Sub

좋은 웹페이지 즐겨찾기