はここ
を機能に対応するVBAコードだものの式で種類
名前は "シート1"、 "シート2" 及び "シート3"
"概要" シート名は "シート1" である
ある
"データ" シート:仮定だ
Sub pastebetweensheets1()
With Worksheets("Sheet1").Range("A3", "A" & Worksheets("Sheet1").Rows.Count).SpecialCells(xlCellTypeConstants)
.Offset(, 1).FormulaR1C1 = "=IF(isnumber(match(RC1,Sheet2!C1,0)),index(Sheet2!C2,match(RC1,Sheet2!C1),0),"""")"
.Offset(, 2).FormulaR1C1 = "=IF(isnumber(match(RC1,Sheet3!C1,0)),index(Sheet2!C2,match(RC1,Sheet3!C1),0),"""")"
.Offset(, 3).FormulaR1C1 = "=IF(isnumber(match(RC1,Sheet4!C1,0)),index(Sheet2!C2,match(RC1,Sheet4!C1),0),"""")"
End With
End Sub
「データ」シートと「概要」シートは、あなたの例ごとに「構造」を持っている
のセル "B1:D1"に "data"シートの名前を入力した場合、柔軟性が向上する可能性があります。サマリー "シートの場合、サブは
Sub pastebetweensheets2()
Worksheets("Sheet1").Range("A3", "A" & Worksheets("Sheet1").Rows.Count).SpecialCells(xlCellTypeConstants).Offset(, 1).Resize(, 3).FormulaR1C1 = "=IF(isnumber(match(RC1,indirect(concatenate(""'"",R1C,""'!C1""),False),0)),index(indirect(concatenate(""'"",R1C,""'!C2""),False),match(RC1,indirect(concatenate(""'"",R1C,""'!C1""),false)),0),"""")"
End Sub
に短縮されます。これまでに試したことがありますか?だから、私たちがあなたを助けてくれるのは簡単でしょう。 –