首页 > 解决方案 > 如何找到列的第 n 个非空白行?

问题描述

好的...长话短说,我在代码中发现了一个错误,我认为我可以简单地找到“A”列(即第 213 行)中的最后一行。但是,我实际上需要第 219 行。这个间隙可能不一致,但是“A”列中有 17 个非空白单元格(第 17 个非空白单元格是第 213 行)和“B 列中的第 17 个非空白单元格” " 是第 219 行(这是我需要提取的行号)。所以我找到了这个公式:

TagCount = sheet(1).Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count

这将返回 17...

现在我需要能够在“B”列中找到第 17 个(或任何 TagCount)非空白单元格(实际上我只需要行号)。

标签: excelvba

解决方案


另一种可能的方法(如果我理解正确的话)是使用以下方法。我正在评估一个 Excel 公式,该公式将在 Column 中找到第 n 个单元格,B其中第 n 个单元格是 Column 中常量数的计数A。这是一个数组公式,可以在工作表中评估,但在 VBA 中评估它,因为它是一个 VBA 问题。

Dim BRng As Range, nthCell As Range
Dim EvalStr As String

With Sheets(1)
    Set BRng = .Range(.Cells(1, 2), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 2))
End With

EvalStr = "=INDEX(" & BRng.Address & ",SMALL(ROW(" & BRng.Address & ")+(100*(" & BRng.Address & "="""")), COUNTA(A:A)))"
Set nthCell = Application.Evaluate(EvalStr)

MsgBox nthCell.Address

推荐阅读