如何遍歷VBA中列的所有行?遍歷整個列以找到值
這是我的樣品:
Function FindRow(Item As String, Rng As range) As Variant
Dim row As Integer
Dim col As Integer
For col = 1 To Rng.Columns.Count
For row = 1 To Rng.Rows.Count
If Rng.Cells(row, col).Value = Item Then
FindRow = row + Rng.row - 1
Exit Function
End If
Next row
Next col
FindRow = CVErr(XlCVError.xlErrNA)
End Function
如果我的範圍是單個列,Rng.Columns.Count是1和Rng.Rows.Count是進入第二對於前1048576 My功能停止。如果我加上Rng.Cells手錶(行,列).value的,我得到了一個
<Application-defined or object-defined error>
在監視窗口
,但沒有彈出。
謝謝。
編輯
解決方法二
使用Rng.Find(項目).Row
Function FindRow(Item As String, Rng As range) As Variant
FindRow = Rng.Find(Item).Row
End Function
/!\它返回,而不是#N/A#VALUE如果項目不在範圍內
你爲什麼要通過上百萬行的循環:要做到這一點,你可以使用這個UDF? – 2015-03-25 10:38:13
...或「MATCH」? – 2015-03-25 10:38:40
但是,如果你想循環,也許設置i = 1,並使用「做直到我> Rng.Columns.Count」,並在最後我=我+ 1 – 2015-03-25 10:42:31