2016-06-21 9 views
-2

VBAに複数の条件のインデックス/マッチコードをコンパイルしようとすると問題が発生します。私はこの例のマクロを作成したい、数式は完全に動作しているが、私はVBAコードが欲しい。私はG2からG10までの範囲を持っています。 誰か助けてくれますか?おかげ複数の条件付きでvbaインデックスが小さい場合

Sub y() 
Range("H2").Select 
Selection.FormulaArray = _ 
    "=IFERROR(INDEX(C2:C4,SMALL(IF(C4=RC7,ROW(C4)),COLUMNS(RC8:RC)),1),"""")" 
Selection.AutoFill Destination:=Range("H2:H3"), Type:=xlFillDefault 
Range("H2:H3").Select 
Selection.AutoFill Destination:=Range("H2:R3"), Type:=xlFillDefault 
Range("H2:R3").Select 

End Subのこのような

答えて

0

何かあなたが始める必要があります。

Sub Match() 

Dim i As Long, LastRow As Long 
LastRow = Range("A" & Rows.Count).End(xlUp).Row 

For i = 2 To LastRow 
    If Cells(i, 4).Value = Cells(i, 7).Value Then 
      Cells(i, 8).Value = Cells(i, 2).Value 
Else 
     Cells(i, 8).Value = "" 

End If 
Next i 

End Sub 

しかし、あなたは間違いなく次の時間を投稿する前に、最初のいくつかのコードを書いてみる必要があり、それはあなたが試すことが重要ですので、援助のために来る前にあなた自身!しかし、これが助けて欲しい!

+0

ありがとうございました。実際に私はこのコードを持っていますが、あなたのものと同じくらい速くはありません。私の手助けが必要なので複数の基準をコンパイルしようとしています。おかげ サブY() レンジ( "H2") Selection.FormulaArrayを選択= _ 「= IFERROR(INDEX(C2:C4、SMALL(IF(C4 = RC7、ROW(C4))、カラム( (H2:H3)、タイプ:= xlFillDefault 範囲( "H2:H3")選択: Selection.AutoFill宛先:=範囲( "H2:R3")、種類:= xlFillDefault 範囲( "H2:R3")選択 エンドサブ – pquiroga02

1

Subおよび関連する宣言の従来のプログラミング構文に従ってVBAで使用するには、VBAで配列式を使用するために次の行を使用します。

'Change Sheetz and Range("xx1:xx10") as per your requirement 
Sheetz.Range("xx1:xx10").FormulaArray = "=IFERROR(INDEX($B:$D,SMALL(IF($D:$D=$G2,ROW($D:$D)),COLUMNS($H2:H2)),1),"""")" 
関連する問題