我目前正在尝试格式化表格的一列,以便如果在另一列中有任何匹配的名称,原始列中的单元格将突出显示。这是我的意思的一个例子:
第10行具有M6A1的先决条件。但是,第11行的名称为M6A1。我希望第10行的M6A1能够突出显示。
为此,我想我会使用COUNTIF,其范围从当前行(本例中为10)到下行(14)。我不想在14中硬编码,因为列表长度会改变。因此,我认为我可以调用表中的最后一行,但这显然不是一个功能。我想知道如何动态引用此表中的最后一行,或者是否有更好的方法来执行此操作。
答案 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]
如果它不在表中,有很多好的解决方案。