当两个其他单元格的内容与引用匹配时写入字符串

时间:2017-08-16 07:50:40

标签: excel vba excel-vba

我希望我的宏检查两个单元格的内容是否与引用匹配,当它发生时,将某个文本写入第三个单元格。

这是我写的代码

lastRow = Sheets("AAA").Range("B1000").End(xlUp).Row
If Sheets("AAA").Range("E5") = "" Then
    id = 1 'identifier
    For i = 5 To lastRow
        sampleFunction = Sheets("AAA").Range("B" & i).Value
        For j = 5 To lastRow
            sampleFailure = Sheets("AAA").Range("C" & j).Value
            For m = 5 To lastRow
                counter = 0
                For n = 5 To lastRow
                    If Sheets("AAA").Range("B" & m).Value = sampleFunction And Sheets("AAA").Range("C" & n).Value = sampleFailure And Sheets("AAA").Range("J" & n) = "" Then
                        Sheets("AAA").Range("J" & n) = ("DDF" & id)
                        counter = counter + 1
                    End If
                Next n
                If counter > 0 Then
                    id = id + 1
                End If
            Next m
        Next j
    Next i
End If

奇怪的是,在某些情况下,我得到一个不存在的对应关系,如下面的第5和第10行示例 enter image description here

我认为问题在于

If Sheets("AAA").Range("B" & m).Value = sampleFunction And Sheets("AAA").Range("C" & n).Value = sampleFailure And Sheets("AAA").Range("J" & n) = "" Then

但我无法发现它。

1 个答案:

答案 0 :(得分:1)

sampleFunctionsampleFailure应该是这样的引号:

If Sheets("AAA").Range("B" & m).Value = "sampleFunction"

否则Excel认为它们是变量。如果它们是变量,那么尝试在代码周围加上括号,它可能会更好。像这样:

If (condition) And (condition) And (condition) then

最后一种情况,debug.print每个条件在检查之前。像这样: debug.print Sheets("AAA").Range("B" & m).Value = sampleFunction