Excel,请问VBA如何实现查找单元格并获取该单元格的行数?

比如:1.查找内容为“AB123”的单元格;2.找到的单元格,获取该单元格的行数
请问如何实现?谢谢!

第1个回答  2013-05-14
单元格的行数 = Cells.Find("AB123").Row
下一个单元格的行数 = Cells.FindNext("AB123").Row
第2个回答  2013-05-14
首先确定查找范围,其次要注明是精确查找,还是模糊查找
我以所有单元格内精确查找为例。

sub 查找()
if not usedrange.find("AB123",lookat:=xlwhole) is nothing then
x=usedrange.find("AB123",lookat:=xlwhole),row
end if
end sub追问

请问直接复制这段代码能用吗?不能的话能否给一段完整代码?谢谢!

追答

Sub 查找()
If Not UsedRange.Find("AB123", lookat:=xlWhole) Is Nothing Then
x = UsedRange.Find("AB123", lookat:=xlWhole).Row
MsgBox "你查找的值在第" & x & "行"
End If
End Sub

追问

运行时错误:424,要求对象
大神,这是什么情况?

追答

下载我给的表看看

追问

谢谢!这回可以了,另外再问一下有没有办法一打开excel就自动运行这个宏呢?

追答

将代码改为
Private Sub Workbook_Open()
f Not UsedRange.Find("AB123", lookat:=xlWhole) Is Nothing Then
x = UsedRange.Find("AB123", lookat:=xlWhole).Row
MsgBox "你查找的值在第" & x & "行"
End IfEnd Sub

来自:求助得到的回答本回答被提问者采纳
第2个回答  2013-05-14
Sub kk()
For Each v In Selection
If v.Value = "aa" Then MsgBox v.Row
Next
End Sub追问

我不是想要弹出框,而是想把这个行数赋给一个变量,能不能给一段完整代码(直接复制就能用的那种)
谢谢!

追答

不明白,这样吗,变量r
Sub kk()
dim r(0 to 500,1 to 2)
For Each v In Selection
If v.Value = "aa" Then r(i,1)=v.Row :i=i+1
Next
End Sub

相似回答