vba-获取具有指定范围内的特定值的单元格的行号

时间:2018-10-06 09:44:49

标签: excel-vba

是否有办法在命名范围(表)中查找包含某些值的单元格的行?

我从C4到D10有一个名为“ Table1”的表。我想返回c列中包含值“ CCC”的单元格的行号。此值位于第三行(C6) ..因此,我希望代码返回数字“ 3”,这意味着表“ Table1”中的第三行,而不是数字“ 6”,这意味着它在单元格“ C6”中找到。

谢谢。

1 个答案:

答案 0 :(得分:3)

编辑:

我错过了有关“相对于桌子”的部分,但这更容易...

以下是可行的方法:

=MATCH("CCC",Table1,0)

或者,直接引用单元格范围而不是表格:

=MATCH("CCC",C4:C10,0)

原始答案:

如果您想知道列C 第一个单元格的行号,该单元格包含 CCC < / strong>,则可以在工作表公式或VBA中使用MATCH函数。

在工作表上:

=MATCH("CCC",C:C,0)

在VBA中:

WorksheetFunction.Match("CCC",Range("C:C"),0)

由于您已识别列,因此它在表中的事实无关紧要。

顺便说一句,我可以想到至少有六种其他方式来同样容易地获取相同数据。

以下是直接引用该表的地方:

=ROW(INDEX(Table1,MATCH("CCC",Table1,0)))

...和更多变化

=MATCH("CCC",C4:C10,0)-1+ROW(C4)

=MATCH("CCC",Table1,0)-1+ROW(Table1)
  

请注意MATCHVLOOKUP之间的最大区别是MATCH返回了 range对象 ,而VLOOKUP仅返回匹配单元格的 ,因此不适合此类任务。


更多信息: