我不能使这段代码工作,这是一个“类型不匹配错误”

时间:2013-04-19 14:59:11

标签: excel vba excel-vba

此代码有什么问题吗?我需要查看一列,如果该值小于参考值(它是一个计时器),则需要复制相邻单元格并放入“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

3 个答案:

答案 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)...