如何引用命名Excel表中的最后一行?

时间:2018-02-07 21:01:24

标签: excel

我目前正在尝试格式化表格的一列,以便如果在另一列中有任何匹配的名称,原始列中的单元格将突出显示。这是我的意思的一个例子:

Example data set

第10行具有M6A1的先决条件。但是,第11行的名称为M6A1。我希望第10行的M6A1能够突出显示。

为此,我想我会使用COUNTIF,其范围从当前行(本例中为10)到下行(14)。我不想在14中硬编码,因为列表长度会改变。因此,我认为我可以调用表中的最后一行,但这显然不是一个功能。我想知道如何动态引用此表中的最后一行,或者是否有更好的方法来执行此操作。

5 个答案:

答案 0 :(得分:0)

要获取表格的最后一行,请使用Range("A1").End(xlDown).Row,前提是您的“A”列没有任何空白单元格。如果是这样,更好的方法是使用Range("A1000000").End(xlUp).Row.End(Direction)方法从指定的Range开始,到达给定方向(Up,Down,Left或Right,前面是xl)的空白单元格之前的最后一个单元格,.Row方法得到给定范围/单元格的行号。

答案 1 :(得分:0)

如果您考虑使用内置的Excel函数,您可以通过这种方式获取表格的最后一行或命名范围:

  • =ROW(NAMED_RANGE or TABLE_NAME)-1+ROWS(NAMED_RANGE or TABLE_NAME) - 表格的最后一行;
  • =ROW(NAMED_RANGE or TABLE_NAME)-1+COUNT(NAMED_RANGE or TABLE_NAME) - 表格中的最后一条记录。

答案 2 :(得分:0)

我建议使用以下代码:

lastRow = ws.Range(affectedTable).Row + ws.Range(affectedTable).Rows.Count - 1

答案 3 :(得分:0)

使用对我有用的内容扩展先前的答案。下面是另一种不需要VBA的解决方案,但将返回填充的最后一行而不是表区域的最后一行。

COUNT(TABLE_NAME)将返回表中已填充单元格的总数。如果有空白单元格,则可能无法正常工作。

由于我们要对行进行计数,因此仅使用总是填充的表中的一列(在许多情况下为第一列)更有意义。使用内置的COUNTA函数,我们只能计算具有值的单元格。使用结构化引用来指定表中的单个列或命名范围:

=ROW(TABLE_NAME)-1+COUNTA(TABLE_NAME[COLUMN_NAME])

答案 4 :(得分:0)

如果您想在表格中使用它(例如总计单元格),只需使用偏移量(当然没有空行): [code]=OFFSET(tblName[[#Totals],[ColName]],-1,0)[/code]

如果它不在表中,有很多好的解决方案。