我目前有一个按钮,可以从两个数组中带回某些值。目标是分析两张纸,并找回两者之间的差异。不幸的是,我只能凭借卓越才能带回PK。
我尝试了多个vLookup,它们表示它们将带回一行,但它们不起作用。这可能与工作簿中不同工作表上的值有关。
'These formulas return the primary Keys but I would still like the macro to
'bring back The entire Row.
Sub IndexMatch_Formula()
' Index Match Formula
Dim Wa As Worksheet
Dim LastRow As Long
LastRow = Worksheets("Analysis").Cells(Rows.Count, "A").End(xlUp).Row
Set Wa = ThisWorkbook.Sheets("Analysis")
With Wa
'C
.Range("C2").Formula = "=IF(IF(ISNA(IF(INDEX(B:B,MATCH(A2,B:B,0))=INDEX(B:B,MATCH(A2,B:B,0)),"""",A2))=TRUE,A2,"""")=0,"""",IF(ISNA(IF(INDEX(B:B,MATCH(A2,B:B,0))=INDEX(B:B,MATCH(A2,B:B,0)),"""",A2))=TRUE,A2,""""))"
.Range("C2").AutoFill Destination:=Worksheets("Analysis").Range("C2:C" & LastRow)
End With
End Sub
Sub IndexMatch_Formula_HP_ServiceManager()
' Index Match Formula
Dim Wa As Worksheet
Dim LastRow As Long
LastRow = Worksheets("Analysis").Cells(Rows.Count, "B").End(xlUp).Row
Set Wa = ThisWorkbook.Sheets("Analysis")
With Wa
'D
.Range("D2").Formula = "=IF(IF(ISNA(IF(INDEX(A:A,MATCH(B2,A:A,0))=INDEX(A:A,MATCH(B2,A:A,0)),"""",B2))=TRUE,B2,"""")=0,"""",IF(ISNA(IF(INDEX(A:A,MATCH(B2,A:A,0))=INDEX(A:A,MATCH(B2,A:A,0)),"""",B2))=TRUE,B2,""""))"
.Range("D2").AutoFill Destination:=Worksheets("Analysis").Range("D2:D" & LastRow)
End With
End Sub
我目前正在寻找所需的答案,但是问题是我仍然需要在宏运行后获取其余数据。
答案 0 :(得分:1)
任何查找公式,例如Vlookup或Index / Match,都只会返回单个单元格的值。
如果需要返回完整的数据行,则可以使用Match()查找行号,然后使用该行号在后续公式或代码中检索该行中的其他单元格。