直到最后一行的单元格引用
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), ""没有数据"")"以上是关于直到最后一行的单元格引用的主要内容,如果未能解决你的问题,请参考以下文章