Excel 应用程序定义或对象定义的错误IF语句
我收到运行时错误“1004”应用程序定义错误或对象定义错误。 它被卡在这个If语句上了Excel 应用程序定义或对象定义的错误IF语句,excel,vba,Excel,Vba,我收到运行时错误“1004”应用程序定义错误或对象定义错误。 它被卡在这个If语句上了 If Cells(rownumber2, 2).Value <> 1 Then 如果单元格(行数2,2)。则值为1 任何帮助都将被占用 Sub stock() Application.ScreenUpdating = False Dim rownumber As Long Dim rownumber2 As Double Dim rng As Range, i As Range, j As R
If Cells(rownumber2, 2).Value <> 1 Then
如果单元格(行数2,2)。则值为1
任何帮助都将被占用
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
子库存()
Application.ScreenUpdating=False
暗行数等于长行数
将第2行暗显为双精度
变暗rng作为范围,i作为范围,j作为范围,rng2作为范围
行数=0'加工900#
行数2=1'最大值900#
设置rng=范围(“j1:j1910”)
设置rng2=范围(“A2:A62685”)
对于rng中的每个i
rownumber=rownumber+1
对于rng2中的每个j
rownumber2=rownumber2+1
如果i=j,那么
如果单元格(第2行,第2行)。值为1,则
'如果(IsNumber(搜索(“*Active*”,单元格(rownumber2,2))),则
单元格(行数,10)。Interior.ColorIndex=5
退出
如果结束
退出
如果结束
下一个
下一个
Application.ScreenUpdating=True
端接头
rowNumber2失败时的值是多少
您永远不会重置其值,因此最终它将超过图纸中的行数。也许你的意思是每次通过“j”循环将其重置为2…因此我无法找出代码不起作用的原因,因此我通过将代码更改为此解决了问题
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
子库存()
Application.ScreenUpdating=False
暗行数等于长行数
变暗rng作为范围,i作为范围,j作为范围,rng2作为范围
行数=0'加工900#
设置rng=范围(“j1:j1921”)
设置rng2=范围(“A2:A62685”)
对于rng中的每个i
rownumber=rownumber+1
对于rng2中的每个j
如果i=j,那么
如果j偏移量(0,1)“激活”,则
单元格(行数,10)。Interior.ColorIndex=3
a=j.偏移量(0,1).值
i、 偏移量(0,1)。值=a
退出
如果结束
退出
如果结束
下一个
下一个
Application.ScreenUpdating=True
端接头
为什么行数2
是双精度的?不能是整数吗?所以你的代码对我有用。工作簿是否受到保护?回过头来看,如果变量离开for循环,则无法清除该变量,这肯定是一个问题