2016-04-01 11 views
0

シート2、シート3、シート4のデータをシート1に挿入するには、VBAでヘルプが必要です。列ヘッダーと列1の有効日付に対応しますVBA excel - データを列の一致のある別のシートに貼り付けます

Order date on column B to be paste into sheet 1 with the effective date matches Sheet 1 overview

あなたはMATCH()とINDEX()の適切な使用で、直接シートのセルに数式を入力することができ
+0

に短縮されます。これまでに試したことがありますか?だから、私たちがあなたを助けてくれるのは簡単でしょう。 –

答えて

0

はここ

を機能に対応する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 
    
    関連する問題