De: https://www.cnblogs.com/acetaohai123/p/6505447.html
VBA obtém o número de linhas e colunas na tabela EXCEL
Cuidado para não usar palavras-chave como Columus como variáveis, como "Columus = ActiveSheet.UsedRange.Columns.Count"!
Os sapatos infantis para macros EXCEL iniciantes sempre querem saber o número de linhas e colunas na tabela, especialmente quando o número de linhas e colunas é incerto. Isso pode evitar muitos erros e melhorar a eficiência. Mas toda vez que o uso para pesquisar na Internet, sempre dou muitas respostas inúteis, e muitas vezes não consigo encontrar os resultados desejados. Sempre que uso, a pesquisa temporária é sempre uma dor de cabeça. Eu me deparei com um blog, que registrava diferentes métodos em detalhes.O autor testou várias descobertas e foi realmente útil. No espírito de compartilhar ao vivo, compartilhe o conteúdo do blog. Espero que ajude a todos.
Fonte: http://www.okexcel.com.cn/bbs/viewthread.php?tid=26
Nota: Em cada método, a parte superior é o número de linhas do Excel e a parte inferior é o número de colunas do Excel.
Método 1:
ActiveSheet.UsedRange.Rows.Count
ActiveSheet.UsedRange.Columns.Count
Desvantagens: Às vezes, pode ser maior que o número real.O motivo é que, se você limpar as últimas linhas (colunas) de dados (não a linha inteira ou a coluna inteira for excluída), esse comando ainda retornará o valor antes de não ser limpo. Ou seja, embora esteja vazio agora, mas você o usou antes é contado como seu.
Método 2:
ActiveSheet.Range ("A65535"). End (xlUp) .Row
ActiveSheet.Range ("IV1"). End (xlToLeft) .Column
Pode ser abreviado como:
ActiveSheet. [A65536] .End (xlUp) .Row
ActiveSheet. [IV1] .End (xlToLeft) .Column
Desvantagens: Você pode calcular apenas o número de linhas (colunas) em que a última célula de uma coluna (linha) está localizada. Neste exemplo, apenas o número de linhas ocupadas pela última célula na coluna A é retornado.
Método 3:
ActiveSheet.Cells.SpecialCells (xlCellTypeLastCell) .Row
ActiveSheet.Cells.SpecialCells (xlCellTypeLastCell) .Column
Desvantagens: Quando a planilha é excluída ou limpa, ela se torna maior que a situação real.
Método 4:
ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row
ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Column
Desvantagens: Quando a planilha é excluída ou limpa, ela se torna maior que a situação real.
Método 5:
Application.CountA (ActiveSheet.Range ("A: A"))
Application.CountA (ActiveSheet.Range ("1: 1"))
Somente o uso real de uma coluna (linha) pode ser contado e a posição da última linha (coluna) não é necessariamente obtida. Se o valor do método 2 for maior que esse método, significa que há uma célula em branco não preenchida entre os dados na coluna A.
Método 6:
ActiveSheet.Cells.Find (O que: = "*", Depois: = [A1], SearchOrder: = xlByRows, SearchDirection: = xlPrevious) .Row
ActiveSheet.Cells.Find (O que: = "*", Depois: = [A1], SearchOrder: = xlByColumns, SearchDirection: = xlPrevious) .Column
Mesmo efeito que o método 2
Entre os métodos acima, o método 1 e o método 2 são comumente usados.