首页 > 解决方案 > 获取单元格在指定范围内的行号

问题描述

我正在尝试获取我用 vba 指定的范围内的单元格的行号。我想获取范围内单元格的行号,但我得到的是工作表中单元格的行号。

这是我目前使用的 vba 代码。我已经设置了一个范围,并在该范围内搜索包含文本字符串“C”的单元格。找到单元格后,我想更改范围第二列中的值。

Sub trial2()

Dim ActiveWB As Workbook
Dim ActiveWS As Worksheet
Dim rng As Range, findCell As Range

Set ActiveWB = ActiveWorkbook
Set ActiveWS = ActiveWB.ActiveSheet

Set rng = ActiveWS.Range("B4", "C10")

With rng
    Set findCell = .Cells.Find(what:="C")
End With

rng.Cells(findCell.Row, 2).Value = "change to something."

End Sub

在运行代码之前:

在此处输入图像描述

运行代码后:

在此处输入图像描述

包含“C”的单元格值位于工作表的第 6 行,但位于区域的第 3 行。我想知道如何获得范围的第三行。我知道我可以将单元格偏移 1 列来解决这个问题,但我很好奇获取单元格相对于定义范围的行数。

标签: excelvba

解决方案


rng一个选项是使用简单的数学根据 的第一行的数量进行调整。

rng.Cells(findCell.Row - rng.Row + 1, 2).Value = "change to something."

在这种情况下6 - 4 + 1= 3


推荐阅读