首先,我寻找与要查找的值相对应的单元格范围:
Dim a As Range
Set a = ActiveSheet.Range("A:A").Find("date", LookIn:=xlValues)
然后我想要的是这样的东西:
a.row
a.Column
但是有一个编译错误:没有合适的对象该方法无效
是否可以找到通过搜索单元格值获得的范围对象的行号和列号?
答案 0 :(得分:1)
发生编译错误是因为您不能只写a.Row
或a.Column
,而必须使用方程式或在函数中使用它。查找总是返回Nothing或具有其属性的单元格区域。当您必须使用其行或列时,您可以编写例如
Dim b as Long
b = a.Row
或写入另一个工作表中的同一单元格:
Worksheets("Sheet2").Range(a.Row, a.Column) = 25
要检查“查找”是否找到了值,请使用以下代码模式。
Sub CellRangeUsage
Dim a As Range
Set a = ActiveSheet.Range("A:A").Find("date", LookIn:=xlValues)
If Not a Is Nothing then ' Check if value was found.
MsgBox "'date' was found in row " & a.Row & " of column " & a.Column & "."
Else
MsbBox "'date' was not found."
End If
End Sub
答案 1 :(得分:0)
通过使用debug.print或MsgBox函数,您可以找到行和列:
Sub findcell()
Dim a As Range
Set a = ActiveSheet.Range("A:A").Find("date", LookIn:=xlValues)
if Not(a is nothing) then
Debug.Print "row of cell: " & a.Row
Debug.Print "column of cell: " & a.Column
MsgBox "row of cell: " & a.Row
MsgBox "column of cell: " & a.Column
else: Msgbox "Cell not found"
end if
End Sub
编辑:考虑到Harassed提到的内容,我使用if分支编辑了代码