Consulte o artigo de Suporte da Microsoft Como selecionar células / intervalos usando procedimentos do Visual Basic no Excel , # 19 ( Como selecionar um intervalo inteiro de células contíguas em uma coluna ).
Como eu poderia acessar um intervalo que corresponde a uma coluna inteira começando na linha 2 (há uma linha de cabeçalho)?
O final da seleção deve ser a última célula não vazia na coluna.
Consulte o artigo de Suporte da Microsoft Como selecionar células / intervalos usando procedimentos do Visual Basic no Excel , # 19 ( Como selecionar um intervalo inteiro de células contíguas em uma coluna ).
Tente isto:
Range(Range("A2"),Range("A2").End(xldown)).Select
ou isto:
Range(Range(Cells(2, 1), Cells(2, 1)), Range(Cells(65535, 1), Cells(65535, 1)).End(xlUp)).Select
Você pode usar os atalhos de teclado do Excel. Tente Ctrl + Início .
Isso levará você à célula A1 (se você não tiver usado o painel congelar). Venha uma célula para baixo e, em seguida, use os botões Ctrl + Deslocar + Seta para baixo para selecionar até a última linha inserida.
Se você tiver que selecionar o valor da coluna, use o botão seta para a direita em vez do botão seta para baixo .
Referindo-se a essa resposta SO , o O único método seguro é o método .find()
.
Todos os outros métodos podem dar resultados errados se você tiver excluído algumas células anteriormente.
Exemplo para obter as últimas células
Lastrow = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Lastcol = Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column
E uma resposta específica à sua pergunta (supondo que seus dados estejam na coluna 2, começando na linha 2)
Range([B2], [B:B].Find("*", [B1], , , xlByRows, xlPrevious)).select
Esse pedaço de código calcula a média de tudo menos o cabeçalho com o cabeçalho na célula "B1"
Dim GG as Long
GG = Application.WorksheetFunction.Average(ActiveSheet.Range("B2", Range("B2").End(xlDown)))
Tags microsoft-excel macros vba