Acabei de fazer uma pergunta sobre como obter o número da coluna para um nome de coluna conhecido e a resposta foi.index
Estou tentando retornar a última linha usada para uma tabela nomeada inteira. Se eu usasse o método .end(xlup) com base na planilha, ele sempre pararia na borda da tabela, independentemente de a célula inferior da tabela estar vazia ou não. Em vez disso, alterei para o seguinte:
Meu código:
Function TableLastUsedRow(TheTable As ListObject) As Long
Dim RowCount As Long, ColCount As Long, TableLastRow As Long
With TheTable
TableLastRow = .ListRows.count
For ColCount = 1 To .ListColumns.count
If IsEmpty(.DataBodyRange.Cells(TableLastRow, ColCount)) Then
RowCount = .DataBodyRange.Cells(TableLastRow, ColCount).End(xlUp).Row
If TableLastUsedRow < RowCount Then TableLastUsedRow = RowCount
Else
TableLastUsedRow = TableLastRow
Exit Function
End If
Next ColCount
End With
End Function
Isso funciona muito bem para retornar a referência de linha da planilha. Como você obtém o número da linha da tabela?
Linha de código atualizada
RowCount = .DataBodyRange.Cells(TableLastRow, ColCount).End(xlUp).ListRow.Index
Isso está gerando o seguinte erro:
Índice da última linha não vazia (dados) de uma tabela do Excel
Abordagem diferente - basta fazer um loop para trás sobre as linhas