在范围内查找字符串并在Excel VBA中返回其行号

时间:2015-06-26 02:43:07

标签: excel-vba userform vba excel

我有一个带有ListBox(lbxNames)名称的UserForm。在电子表格中,我有一系列名称(rngNames)。

我想在列表rngNames的ListBox中找到所选名称的行号,并将其分配给varRowNum。我可以选择ListBox,但不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

解决方案:这对我有用。

Set TargetCell = Range("rngNames").Find(What:= ENTER_LISTBOXVALUE_HERE, _
    LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False)
varRowNum = TargetCell.Row

如果您要在rngNames中查找 relative 行号,请改用:

varRowNum = TargetCell.Row - Range("rngNames").Cells(1, 1).Row + 1

<强>结果:

工作表中的绝对行号: enter image description here

rngNames中的相对行号: enter image description here

说明: .Find方法将返回第一次出现搜索词的单元格对象。 .Row属性将为您提供其工作表中找到的单元格的行号。对于相对数,您可以简单地从绝对行号中减去范围(.Cells(1,1).Row)的第一个单元格的行号。