此代码有什么问题吗?我需要查看一列,如果该值小于参考值(它是一个计时器),则需要复制相邻单元格并放入“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
答案 0 :(得分:6)
或者对于所有显示的选项,或者在现有If statement
之前添加此额外if
:
If IsError(Cells(i, 39)) = False And IsError(Cells(32, 5))= False Then
答案 1 :(得分:1)
您可以尝试在测试之前测试单元格中的数值,小于:
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
答案 2 :(得分:1)
为避免不匹配,请尝试与单元格的文本进行比较:
If Cells(i,38).Text < Cells(32,5)...