应用程序定义的或对象定义的错误IF语句

时间:2016-02-10 14:41:18

标签: excel vba

我得到运行时错误'1004'应用程序定义或对象定义错误。 它被卡在这个If语句上

If Cells(rownumber2, 2).Value <> 1 Then

任何帮助都会被挪用

Sub stock()
Application.ScreenUpdating = False
Dim rownumber As Long
Dim rownumber2 As Double
Dim rng As Range, i As Range, j As Range, rng2 As Range
rownumber = 0 'Machining 900#
rownumber2 = 1 'maximo 900#
Set rng = Range("j1:j1910")
Set rng2 = Range("A2:A62685")
For Each i In rng
    rownumber = rownumber + 1
    For Each j In rng2
    rownumber2 = rownumber2 + 1
    If i = j Then
        If Cells(rownumber2, 2).Value <> 1 Then
        'If (IsNumber(Search("*Active*", Cells(rownumber2, 2)))) Then
            Cells(rownumber, 10).Interior.ColorIndex = 5
        Exit For
        End If
        Exit For
    End If
 Next
Next
Application.ScreenUpdating = True
End Sub

2 个答案:

答案 0 :(得分:0)

rowNumber2失败时的值是多少?

您永远不会重置其值,因此最终它将超过工作表中的行数。也许你的意思是每次通过&#34; j&#34;重置为2。环...

答案 1 :(得分:0)

所以我无法弄清楚为什么代码不起作用所以我通过将代码更改为此来解决问题。

Sub stock()
Application.ScreenUpdating = False
Dim rownumber As Long
Dim rng As Range, i As Range, j As Range, rng2 As Range
rownumber = 0 'Machining 900#
Set rng = Range("j1:j1921")
Set rng2 = Range("A2:A62685")
For Each i In rng
    rownumber = rownumber + 1
    For Each j In rng2
        If i = j Then
            If j.Offset(0, 1) <> "Active" Then
                Cells(rownumber, 10).Interior.ColorIndex = 3
                a = j.Offset(0, 1).Value
                i.Offset(0, 1).Value = a
            Exit For
            End If
            Exit For
        End If
     Next
Next
Application.ScreenUpdating = True
End Sub