查找范围对象的行和列

时间:2019-01-08 12:42:56

标签: excel vba

首先,我寻找与要查找的值相对应的单元格范围:

Dim a As Range
Set a = ActiveSheet.Range("A:A").Find("date", LookIn:=xlValues)

然后我想要的是这样的东西:

a.row
a.Column

但是有一个编译错误:没有合适的对象该方法无效

是否可以找到通过搜索单元格值获得的范围对象的行号和列号?

2 个答案:

答案 0 :(得分:1)

范围编译错误

发生编译错误是因为您不能只写a.Rowa.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分支编辑了代码