- 締切済み
エクセル VBA で他の表のリストを紐付けたい
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 別Bookではなく アップされている左側の画像のSheetがSheet1・右側の表がSheet2にあるとしての一例です。 Sub test() Dim ws1 As Worksheet, ws2 As Worksheet, i As Long, k As Long, str As String Set ws1 = Worksheets("Sheet1") Set ws2 = Worksheets("Sheet2") ws2.Columns(1).Insert k = ws2.Cells(Rows.Count, 2).End(xlUp).Row Range(ws2.Cells(2, 1), ws2.Cells(k, 1)).Formula = "=B2&""_""&C2" ws1.Columns(1).Insert For i = 1 To ws1.Cells(Rows.Count, 2).End(xlUp).Row If ws1.Cells(i, 2) <> "" Then If Not IsNumeric(ws1.Cells(i, 2)) Then str = ws1.Cells(i, 2) Else ws1.Cells(i, 1) = str & "_" & ws1.Cells(i, 2) End If End If If ws1.Cells(i, 1) <> "" Then If WorksheetFunction.CountIf(ws2.Columns(1), ws1.Cells(i, 1)) Then k = WorksheetFunction.Match(ws1.Cells(i, 1), ws2.Columns(1), False) With ws1.Cells(i, 3) .Value = ws2.Cells(k, 4) .Offset(, 1) = ws2.Cells(k, 5) End With Else ws1.Cells(i, 3) = "該当データなし" End If End If Next i ws1.Columns(1).Delete ws2.Columns(1).Delete End Sub こんな感じではどうでしょうか?m(_ _)m
- bin-chan
- ベストアンサー率33% (1403/4213)
リスト(別ワークブック)を現在のブックにコピーできますか? 出来るのなら、コピーしてその表に「名前」をつける。 そうすれば、同じブック内ならVLookUpで参照可能。(範囲に上記の「名前」を指定する)
補足
bin-chan様 回答ありがとうございます。 VLookUpで参照可能ですが、実際のリストは項目も多く手間がかかり、 VLookUpの際作業を間違える可能性があるため VBAで自動化できないかと考えました。
お礼
お礼が遅くなり申し訳ありません。 教えていただいたコードで勉強させていただきました。 とても勉強になりました。ありがとうございました。