返回特定值的行

时间:2019-07-23 12:37:36

标签: excel vba

我目前有一个按钮,可以从两个数组中带回某些值。目标是分析两张纸,并找回两者之间的差异。不幸的是,我只能凭借卓越才能带回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

我目前正在寻找所需的答案,但是问题是我仍然需要在宏运行后获取其余数据。

1 个答案:

答案 0 :(得分:1)

任何查找公式,例如Vlookup或Index / Match,都只会返回单个单元格的值。

如果需要返回完整的数据行,则可以使用Match()查找行号,然后使用该行号在后续公式或代码中检索该行中的其他单元格。