如果有多个标准,vba索引很小

时间:2016-06-21 03:58:19

标签: excel vba excel-vba

尝试在VBA中编译多条索引索引/匹配代码时遇到问题。我想为这个例子创建一个宏,该公式工作正常,但我想要一个VBA代码。我的范围从G2G10。 谁能帮助我?感谢

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

2 个答案:

答案 0 :(得分:1)

要在遵循Sub和相关声明的传统编程语法的VBA中使用,请使用以下行在VBA中使用Array Formula。

'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),"""")"

答案 1 :(得分: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

但是,在下次发布之前,你一定要先尝试编写一些代码,因为在你寻求帮助之前自己试一试是很重要的!但希望这有帮助!