直到最后一行的单元格引用

Posted

技术标签:

【中文标题】直到最后一行的单元格引用【英文标题】:Cell Reference till the last Row 【发布时间】:2019-10-01 05:34:45 【问题描述】:

谁能帮我看看下面的代码。

我正在尝试查找单元格是否包含给定单元格范围内的任何文本。然后返回找到的文本。如果我给像 B4:B6 这样的单元格范围,它工作正常,但我希望它是动态的,直到 B 列的最后一行。

单元格中使用的公式

IFERROR(LOOKUP(1,0/COUNTIF($H2,"*"&Requirement!$B$2:$B$4&"*"),Requirement!$B$2:$B$4),"No Data")

VBA 脚本

ActiveCell.FormulaR1C1=_"=IFERROR(LOOKUP(1,0/COUNTIF(RC8,""*""&Requirement!R2C2:R4C2&""*""),Requirement!R2C2:R4C2),""No Data"")"

这里不是Requirement!$B$2:$B$4,我希望它一直到最后一行。

【问题讨论】:

对于像你这样的情况,我一直更喜欢使用动态命名范围。你可以看到an example here。 【参考方案1】:

这取决于您是想要工作表中的最后一行还是包含数据的最后一行。一般的解决方法比较简单,你替换

"R2C2:R4C2"

"R2C2:R" & Rows.Count & "C2"

这将为您提供工作表中的最后一行。如果您希望最后一行包含B 列中的数据,请使用:

"R2C2:R" & ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row & "C2"

使用它来替换代码中所有相关的单元格引用。

【讨论】:

您也可以使用 UsedRange 获取工作表的最后一行,如下所示:"R2C2:R" & ActiveSheet.UsedRange.Rows.Count & "C2" 这在某些情况下会起作用。有一些情况会导致问题,但有两个例子: 1. 工作表的上排没有使用(虽然不太可能发生,但这可能会产生重大影响) 2. 不同列中的数据具有不同的“长度”(可能不会造成问题,但会降低准确性) 非常感谢!!由于参考范围在另一个工作表中,我使用工作表名称而不是 ActiveSheet 并且它有效。 =IFERROR(LOOKUP(1,0/COUNTIF(RC8,""""&Requirement!R2C2:R" & Sheets("Requirement").Cells(Rows.Count, "B").End(xlUp). Row & "C2&""""),Requirement!R2C2:R" & Sheets("Requirement").Cells(Rows.Count, "B").End(xlUp).Row & "C2), ""没有数据"")"

以上是关于直到最后一行的单元格引用的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL表格的最后一行求和问题

单元格标签中的最后一行不会出现自动布局和动态单元格高度

Excel 如何快速从第一行选到最后一行

复制范围直到最后一行值等于 0

应用公式,然后自动填充数据,直到列中的最后一个可见单元格:VBA

在节的最后一行添加一个表格视图单元格