我知道这很容易在VBA之外完成,但我希望能够熟练使用VBA作为初学者。
我有一个长列(大约25,000行)。我需要找到第一个实例,该列中的单元格值大于零。然后我需要将该单元格的地址返回给变量。到目前为止,我一直在使用循环没有成功,有什么建议吗?
答案 0 :(得分:3)
您可以轻松执行以下操作:
For each c in Range("A1:A25000").Cells
If c.Value > 0 Then
firstValue = c.Value
firstAddress = c.Address
Exit For
End If
Next
MsgBox "The first value greater than zero is in cell " & firstAddress & _
"; - it has value " & firstValue
答案 1 :(得分:1)
这应该有效
Function not_zero() AS String
Dim lcell as Range
For Each lcell in Range("$YOUR COLUMN LETTER$1","$YOUR COLUMN LETTER$LAST ROW")
If CLng(lcell.value) > 0 then
not_zero = lcell.Address
Exit For
End If
Next lcell
End Function