如何在VBA中的列中找到大于零的第一个值?

时间:2014-05-05 15:12:14

标签: excel vba excel-vba

我知道这很容易在VBA之外完成,但我希望能够熟练使用VBA作为初学者。

我有一个长列(大约25,000行)。我需要找到第一个实例,该列中的单元格值大于零。然后我需要将该单元格的地址返回给变量。到目前为止,我一直在使用循环没有成功,有什么建议吗?

2 个答案:

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