如何检查当前行中的值是否也出现在上面的一行中,并且可以获取当前行中的相应值

时间:2015-03-17 14:35:34

标签: excel excel-vba vba

这是更大进程的一部分。数据如下:

code        cat     Status
aa           A        K
aa           B        L
aa           C        M
aa           A  
aa           D  

当代码到达第5行时,我想检查上面的所有行,并找出A类别状态已经被指定为K并将其放在当前行中,然后移动到下一行。它应检查所有行。

如果上述行中没有相同的类别,则应转到名为'列表'其中包含代码,cat级别状态信息并选择该状态。

1 个答案:

答案 0 :(得分:0)

当您的示例数据到达代码:aa,状态:D 时将显示错误,因为 aa,D 组合。

话虽如此,这应该是你最快的方法。

Dim rng As Range
With ActiveSheet.Cells(1, 1).CurrentRegion
    On Error Resume Next
    Set rng = .Columns("C").SpecialCells(xlCellTypeBlanks)
    On Error GoTo 0
    If Not rng Is Nothing Then
        rng.FormulaR1C1 = "=IFERROR(INDEX(R1C:R[-1]C, MIN(INDEX(ROW(R1:R[-1])+((R1C[-1]:R[-1]C[-1]<>RC[-1])+(R1C[-2]:R[-1]C[-2]<>RC[-2]))*1E+99, , ))), """")"
        rng = rng.Value
    End If
End With

如果样本数据不仅仅是编辑错误,请编辑您的问题以包含有关特殊情况的更多细节,并且可以提供更多帮助。