如果满足IF条件,我将尝试使用vlookup运行循环。我已经编写了下面提供的代码,但是在第3行中给出了错误,提示类型不匹配。 lastrow和ws1定义正确,因为我设法在没有if条件的情况下运行了此代码。我同时提供了在没有if条件的情况下成功运行的代码和没有运行的代码
代码1(它运行但没有If
条件)
With ws1
.Range("G2:G" & lastrow3).Formula = "=IFERROR(VLOOKUP(C2,'[NOT OK.xlsx]Sheet1'!F:I,4,FALSE),"""")"
.Range("G2:G" & lastrow3).Value = .Range("G2:G" & lastrow3).Value
End With
代码2(它不运行)
With ws1
For i = 2 To lastrow3
If .Cells(i, "E").Value = 0 And .Cells(i, "F").Value = 0 Then
.Cells(i, "G").Formula = "=IFERROR(VLOOKUP(C2,'[NOT OK.xlsx]Sheet1'!F:I,4,FALSE),"""")"
End If
Next i
End With
答案 0 :(得分:0)
好像我看不懂。
with ws1
For i = 2 To 6
If .Cells(i, "E").Value = 0 And .Cells(i, "F").Value = 0 Then
.Cells(i, "G").Value = "ok"
End If
Next i
end with
运行良好并产生。
也可能不需要在VLOOKUP的搜索字符串中使用硬编码的C2
。
答案 1 :(得分:0)
为什么不只使用IF公式
IF(E2+F2 = 0, VLOOKUP(C2,'[NOT OK.xlsx]Sheet1'!F:I,4,FALSE), "")
Used in VBA like this:
For I = 2 To lastRow
Range("G" & I).Formula = "=IF(E" & I & "+ F" & I & " = 0, " & Chr(34) & "VLOOKUP(C2,'[NOT OK.xlsx]Sheet1'!F:I,4,FALSE)" & Chr(34) & ", " & Chr(34) & "No" & Chr(34) & ")"
Next I