我希望我的宏检查两个单元格的内容是否与引用匹配,当它发生时,将某个文本写入第三个单元格。
这是我写的代码
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行示例
我认为问题在于
If Sheets("AAA").Range("B" & m).Value = sampleFunction And Sheets("AAA").Range("C" & n).Value = sampleFailure And Sheets("AAA").Range("J" & n) = "" Then
但我无法发现它。
答案 0 :(得分:1)
sampleFunction
和sampleFailure
应该是这样的引号:
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