尝试在VBA
中编译多条索引索引/匹配代码时遇到问题。我想为这个例子创建一个宏,该公式工作正常,但我想要一个VBA
代码。我的范围从G2
到G10
。
谁能帮助我?感谢
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 :(得分: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
但是,在下次发布之前,你一定要先尝试编写一些代码,因为在你寻求帮助之前自己试一试是很重要的!但希望这有帮助!