1

为了弄清楚这一点,我一直在殴打自己,我的谷歌搜索页面充满了访问过的链接,因为我尝试以一百种不同的方式对我的搜索进行措辞,但没有成功!

我有一个范围,比如说A8:A17,活动单元格是A10。如何获得A10相对于范围中第一个单元格的行号A8(我希望结果是3)?我想使用这个值来引用另一个使用Range(exRange).Cells(exRow, 1). 我能想到的唯一方法是循环遍历范围,直到循环数等于活动单元格的行,但必须有一种更清洁的方法!

4

2 回答 2

3

使用属性:

Sub bafedm()
    Dim Tabl As Range, r As Range
    Set Tabl = Range("A8:A17")
    Set r = Range("A10")
    MsgBox r.Row - Tabl.Row + 1
End Sub

作为参考,以下是典型矩形范围的其他属性和尺寸的一些代码:

Sub range_reporter()
    Dim r As Range
    Dim nLastRow As Long, nLastColumn As Long
    Dim FirstRow As Long, nFirstColumn As Long

    ActiveSheet.UsedRange
    Set r = ActiveSheet.UsedRange

    nLastRow = r.Rows.Count + r.Row - 1
    MsgBox ("last row " & nLastRow)

    nLastColumn = r.Columns.Count + r.Column - 1
    MsgBox ("last column " & nLastColumn)

    nFirstRow = r.Row
    MsgBox ("first row " & nFirstRow)

    nFirstColumn = r.Column
    MsgBox ("first column " & nFirstColumn)

    numrow = r.Rows.Count
    MsgBox ("number of rows " & numrow)

    numcol = r.Columns.Count
    MsgBox ("number of columns " & numcol)
    End Sub
于 2013-09-08T14:23:21.770 回答
-1

怎么样:

=MATCH(A10, $A$:$A18$, 0) //returns 3
于 2013-09-08T14:25:36.467 回答