VBA擅长,在列中找到相应的值

时间:2017-06-12 13:09:04

标签: excel vba excel-vba

我设法遍历两列,以查找另一列中是否存在一列中的值。

现在,下一步是确定两列中的值是否在值右侧的单元格中包含相同的值。

期望结果和当前结果的图片应该解释我想要实现的目标。

P.S。不要被代码混淆,因为我的工作簿中的列位于两个不同的表上。

enter image description here

一旦我得到确认匹配,我已尝试在列中循环两次,但此时,我只是输了......对不起

Sub loopDb()

    Set dbsheet1 = ThisWorkbook.Sheets("Sheet1")
    Set dbsheet2 = ThisWorkbook.Sheets("Sheet2")

    lr1 = dbsheet1.Cells(Rows.Count, 1).End(xlUp).Row
    lr2 = dbsheet2.Cells(Rows.Count, 1).End(xlUp).Row

    For x = 2 To lr1
        act1 = dbsheet1.Cells(x, 1)

        For y = 2 To lr2
            act2 = dbsheet2.Cells(y, 1)

            If Not dbsheet2.Cells(y, 3).Value = "Match" Then
                'Only compare if previoulsy not done or resulted in "No match"
                If act2 = act1 Then
                    dbsheet2.Cells(y, 3).Value = "Match"

                    If dbsheet2.Cells(y, 3).Value = "Match" Then
                        For i = 2 To lr1
                            If dbsheet2.Cells(y, 1).Value = dbsheet2.Cells(i, 1).Value Then
                                dbsheet2.Cells(y, 4).Value = "Match"
                            Else
                                dbsheet2.Cells(y, 4).Value = "No match"
                            End If
                        Next i
                    End If

                 Else
                 dbsheet2.Cells(y, 3).Value = "No match"
                End If
            End If
        Next y

    Next x


End Sub

1 个答案:

答案 0 :(得分:2)

正如Nathan_Sav指出的那样,你可以用匹配公式来解决你的问题。

MATCH formula可让您在没有vba的情况下完全工作。

匹配col1和col2的公式:

jsonOut = open('test.json', 'w') 
jsonOut.write(json.dumps(j))

匹配公式返回找到匹配项的索引。否则会出错。获得单词"匹配"和#34;没有匹配"我们需要=IFERROR(IF(MATCH(sheet1!A1;sheet2!$A$1:$A$10;0)>=0;"Match");"No match") IF公式。

col1和amp;的匹配公式val1和col2& val 2

IFERROR

组合两列sheet2可以使用必要的数组公式。要使其工作,请按Ctrl + Shift + Enter。

我希望这会有所帮助