For Each循环中的我的If语句不起作用。当满足ElseIf条件(消息框“2”)时,即使满足第一个条件(消息框“1”),也总是出现“2”并且该代码运行。当我在ElseIf(“2”)之后删除代码时,出现“1”并且代码运行。本质上,第二个条件似乎覆盖了第一个条件的代码。我知道第二个条件更为通用,但它并不能解释为什么第一个条件被跳过,即使它肯定是满足的(当我删除第二个条件时证明)。有关为什么第二个条件接管的任何想法?
For Each curr In Range("A2:Z10")
If InStr(1, curr.Value, "Protein name", vbTextCompare) > 0 Or InStr(1, curr.Value, "description", vbTextCompare) > 0 Then
MsgBox ("1")
Range(curr.Offset(1), Cells(Rows.Count, curr.Column).End(xlUp)).Copy Destination:=Workbooks("ExtractedColumns").Sheets("Sheet1").Cells(Rows.Count, "D").End(xlUp).Offset(1, 0)
Exit For
ElseIf InStr(1, curr.Value, "protein", vbTextCompare) > 0 Then
MsgBox ("2")
Range(curr.Offset(1), Cells(Rows.Count, curr.Column).End(xlUp)).Copy Destination:=Workbooks("ExtractedColumns").Sheets("Sheet1").Cells(Rows.Count, "D").End(xlUp).Offset(1, 0)
Exit For
End If
Next