为了弄清楚这一点,我一直在殴打自己,我的谷歌搜索页面充满了访问过的链接,因为我尝试以一百种不同的方式对我的搜索进行措辞,但没有成功!
我有一个范围,比如说A8:A17
,活动单元格是A10
。如何获得A10
相对于范围中第一个单元格的行号A8
(我希望结果是3
)?我想使用这个值来引用另一个使用Range(exRange).Cells(exRow, 1)
. 我能想到的唯一方法是循环遍历范围,直到循环数等于活动单元格的行,但必须有一种更清洁的方法!
为了弄清楚这一点,我一直在殴打自己,我的谷歌搜索页面充满了访问过的链接,因为我尝试以一百种不同的方式对我的搜索进行措辞,但没有成功!
我有一个范围,比如说A8:A17
,活动单元格是A10
。如何获得A10
相对于范围中第一个单元格的行号A8
(我希望结果是3
)?我想使用这个值来引用另一个使用Range(exRange).Cells(exRow, 1)
. 我能想到的唯一方法是循环遍历范围,直到循环数等于活动单元格的行,但必须有一种更清洁的方法!
使用行属性:
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
怎么样:
=MATCH(A10, $A$:$A18$, 0) //returns 3