VBAについて質問です。

補足

C列は2,2,1行で結合されています。 例えば C12,13が結合 C14,15が結合 C16 C17,18が結合 C19,20が結合 C21 C22,23が… といった具合に2-2-1となっています。 そしてE列には E12,E13に違う値 E14,E15に違う値 E16は空白 E17,E18に違う値 E19,E20に… といった感じになっています。 C12(正確には12,13に一つの値)の値をキーにしてsheet2のE12,13の値をsheet1のE列どこか2行に転記 としたいです。 sheet1を一部抜粋してコピーしているのがsheet2なのでセルの配置などは同じです。

Visual Basic36閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

0

ThanksImg質問者からのお礼コメント

返信が遅くなってすみません。 思ったとおりにできました! ありがとうございました!!

お礼日時:5/6 12:51

その他の回答(1件)

0

C列の値をキーにしてsheet2からsheet1へE列の値を転記するということ? VBA使わずにVlookupあたりでもいい気はしますが、とりあえずVBAでMacthを使う方法 値がある前提ということですが、ない場合はエラーが出るのでエラー処理が必要 Sub Test() Dim ws1 As Worksheet: Set ws1 = Worksheets("Sheet1") Dim ws2 As Worksheet: Set ws2 = Worksheets("Sheet2") Dim sh2Value As Variant Dim i As Long, MatchRow As Long For i = 12 To 70 sh2Value = ws2.Cells(i, 3).Value If sh2Value <> "" Then MatchRow = WorksheetFunction.Match(sh2Value, ws1.Range("C:C"), 0) ws1.Cells(MatchRow, 5).Value = ws2.Cells(i, 5).Value End If Next i End Sub

ご回答ありがとうございます。 すみません、書いたつもりが抜けていました! C列は2,2,1行で結合されています。 例えば C12,13が結合 C14,15が結合 C16 C17,18が結合 C19,20が結合 C21 C22,23が… といった具合に2-2-1となっています。 そしてE列には E12,E13に違う値 E14,E15に違う値 E16は空白 E17,E18に違う値 E19,E20に… といった感じになっています。 C12(正確には12,13に一つの値)の値をキーにしてsheet2のE12,13の値をsheet1のE列どこか2行に転記 としたいです。 sheet1を一部抜粋してコピーしているのがsheet2なのでセルの配置などは同じです。 2つの値を1つの値で検索はVlookupでは難しいのでVBAで処理できればと思い質問しました。 せっかくご回答頂いたのに、後付けで色々言ってすみません。 上記の感じでも回答頂いたコードで対応可能でしょうか?