这段代码有什么问题吗。我需要查看一列,如果该值小于参考值(它是一个计时器),则复制相邻的单元格并放入“A8”。
谢谢。
Sub GetData()
Dim i As Integer
For i = 4 To 31
If Cells(i, 38) < Cells(32, 5) Then
Cells(1, 8) = Cells(i, 39)
End If
Next i
End Sub
或者,If statement
在您现有的所有选项中添加此附加项if
:
If IsError(Cells(i, 39)) = False And IsError(Cells(32, 5))= False Then
您可以在测试小于之前尝试测试单元格中的数值:
Sub GetData()
Dim i As Integer
For i = 4 To 31
if isnumeric(cells(i,38)) then
If Cells(i, 38) < Cells(32, 5) Then
Cells(1, 8) = Cells(i, 39)
' Exit For ' UN-COMMENT to exit loop
End If
else
msgbox "Cell '" & cells(i,38).address & "' may have an error",vbexclamation+vbokonly
end if
Next
End Sub
顺便说一句,David 和 Kazjaw 的上述评论非常正确,循环的每次迭代你都可能会覆盖单元格 A8!
您可以在测试返回 true 后立即退出循环,如下所示:
Exit for
为避免不匹配,请尝试与单元格的文本进行比较:
If Cells(i,38).Text < Cells(32,5)...