我正在尝试使用以下VBA子查找每个后续列的初始负值/最后正值的相应第一列值,但是当我运行它时它立即给了我一个
“400”
错误。你们知道可能的原因吗?
Sub findzero()
For i = 225 To 335
For j = 19 To 10018
If Range(Cells(j, i)).Value < 0 Then
Range(Cells(14, i)).Value = Range(Cells(j - 1, 1)).Value
Exit For
End If
Next j
Next i
End Sub
答案 0 :(得分:1)
当我运行此操作时,我得到的错误与您不同。我得到了&#34;方法&#39;范围&#39;对象&#39; _Global&#39;失败&#34。我不太确定为什么我们的消息不同。
无论如何,我不认为这是使用&#34; Range&#34;对象(对象?)正确。它要么是Range(Cells(j,i),Cells(j,i)).Value
(选择&#34;范围&#34;只跨越一个单元格),要么Cells(j,i).
For i = 225 To 335
For j = 19 To 10018
If Cells(j, i) < 0 Then
Cells(14, i) = Cells(j - 1, 1)
Exit For
End If
Next j
Next i
或者,或者,
For i = 225 To 335
For j = 19 To 10018
If Range(Cells(j, i), Cells(j, i)).Value < 0 Then
Range(Cells(14, i), Cells(14, i)).Value = Range(Cells(j - 1, 1), Cells(j - 1, 1)).Value
Beep
Exit For
End If
Next j
Next i
我个人更喜欢第一种方式。可能有更好的方法来做到这一点,但我不知道它会是什么。