Excel Vba: - 如果在一行中找到匹配项,则显示单元格值

时间:2016-02-05 09:57:46

标签: excel vba excel-vba

我的问题可能有点令人困惑。

我试图在工作表中找到一个数字匹配的次数,但如果一个数字在一行中多次出现,则不应计算。它只计算每行1个。

A B C D状态   1 id1 day1 val1已解决   2 id2 id1 id1未解决   3 id3 day1 val3未解决   4 id1 day2 id1已解决   5 id2 day2 val2未解决   6 id3 day2 val3未解决

因此,如果我搜索id1,它必须计数3而不是5,因为它在2&第4排。 并且它还应显示其状态,如2已解决1未解决,因为1& 4th已解决,因此计数已解决2且第2行未解决。

非常感谢任何帮助..请提供Vba代码的建议..

1 个答案:

答案 0 :(得分:1)

假设您在i行和j列的数组中寻找“id1”,第一个单元格为A1

Dim SearchCriteria as string
Dim CheckRow, CheckCol, i,j, HitCounter as long

SearchCriteria = "id1"
i = 10
j = 10
HitCounter = 0

For CheckRow = 1 to i
    For CheckCol = 1 to j
        If(instr(cells(CheckRow ,CheckCol ),SearchCritera) <> 0 then 'If the criteria is found in the cell
            HitCounter = HitCounter + 1
            Exit For 'Exit the column loop and go to the next row
        End if

    Next j
Next i

MsgBox "Your criteria was found in " & HitCounter & " different rows"