
エクセル VBA で他の表のリストを紐付けるには、
どのような、コードを記入すればよろしいでしょうか?
A1にBAA、A6にCAA、A11にEAAという項目があります。(図 マクロ実行前参照)
項目の下の数字を検索値として、リスト(別ワークブック)の
C列とD列の値を紐付けしたいのですが、
その場合どのようなコードを記入すればよろしいでしょうか?
※リスト(別ワークブック)はBAA、CAA、EAAの3項目が全て混ざった形のため
その項目を自動認識して、数字の検索値で紐付けする事は可能でしょうか?
よろしくお願い致します。

A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは!
別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
お礼が遅くなり申し訳ありません。
教えていただいたコードで勉強させていただきました。
とても勉強になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セックスする度に胸が大きくな...
-
週1ペースで会うカップルでデー...
-
セックスしてる時に気持ちいい...
-
セックスの目的について
-
母子相姦経験者ですが、日本で...
-
僕の心が狭いのでしょうか…?セ...
-
胸が揺れるくらい激しいセック...
-
アナルファックと普通のセック...
-
謎
-
おじさんになってから若い女性に
-
セックスについて。 彼が正常位...
-
初めて泊まりにきてくれる彼女...
-
未成年同士でラブホに行った際...
-
オナ禁中はセックスしてもいい...
-
セックスする時なぜ声出るの
-
恋人とセフレの違いはなんです...
-
彼女が噛んできます。 歯型がつ...
-
高校生の性行為
-
セックス前
-
付き合って1ヶ月でヤった後別れ...
おすすめ情報