VBA UsedRange - Como encontrar o número de linhas e colunas usadas?

UsedRange, como o nome sugere, são os intervalos que, como alguns tipos de valores neles, as células vazias não são incluídas nos intervalos usados, portanto, em VBA intervalos usados ​​é a propriedade do objeto de intervalo no VBA para aqueles intervalos de células em linhas e colunas que não estão vazias e contêm alguns valores.

UsedRange em VBA Excel

O UsedRange no VBA é uma propriedade da planilha que retorna um objeto de intervalo que representa o intervalo usado (todas as células do Excel usadas ou preenchidas em uma planilha) em uma planilha específica. É uma propriedade que representa a área coberta ou limitada pela célula usada superior esquerda e células usadas da última direita em uma planilha.

Podemos descrever 'Célula usada' como uma célula que contém qualquer fórmula, formatação, valor, etc. Também podemos selecionar a última célula usada pressionando as teclas CTRL + END no teclado.

A seguir está uma ilustração de UsedRange em uma planilha:

Podemos ver na imagem acima que o UsedRange é A1: D5.

Exemplos de propriedade Excel VBA UsedRange

Vejamos alguns exemplos abaixo para ver como a propriedade UsedRange em uma planilha pode ser usada para encontrar o intervalo usado no VBA:

Exemplo 1

Digamos que temos um arquivo Excel contendo duas planilhas e desejamos encontrar e selecionar o intervalo utilizado na Planilha1.

Vamos ver o que a Folha1 contém:

Usamos a propriedade UsedRange na janela VBA Immediate para realizar essa tarefa. A janela imediata do VBA é uma ferramenta que ajuda a obter informações sobre os arquivos do Excel, executar ou depurar rapidamente qualquer código VBA, mesmo se o usuário não estiver escrevendo nenhuma macro. Ele está localizado no Editor do Visual Basic e pode ser acessado da seguinte forma:

  • Vá para a guia Desenvolvedor do Excel e clique em Editor do Visual Basic ou pressione Alt + F11 para abrir a janela do Editor do Visual Basic.

Ao fazer isso, uma janela é aberta da seguinte forma:

  • Pressione Ctrl + G para abrir a janela imediata e digite o código.

A janela imediata se parece com:

  • O código a seguir selecionará o intervalo usado na Planilha1.

Código:

? Planilhas ("Folha1"). Ativar True? ActiveSheet.UsedRange.Select True

A primeira instrução do código ativará a Planilha1 do arquivo e a segunda instrução selecionará o intervalo usado naquela planilha ativa.

Ao escrever este código, vemos que o intervalo usado na Planilha1 é selecionado da seguinte maneira:

Exemplo # 2

Agora, digamos que neste exemplo, desejamos encontrar o número total de linhas usadas na Folha1. Para fazer isso, seguimos as etapas abaixo:

  • Crie um nome de macro no módulo.

Código:

Sub TotalRows () End Sub
  • Defina a variável TotalRow como Integer em VBA:

Código:

Sub TotalRows () Dim TotalRow As Integer End Sub
  • Agora atribua a variável TotalRow com a fórmula para calcular um número total de linhas:

Código:

Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub
  • Agora, o valor resultante de TotalRow pode ser exibido e retornado usando uma caixa de mensagem VBA (MsgBox) da seguinte maneira:

Código:

Sub TotalRows () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub
  • Agora, executamos esse código manualmente ou pressionando F5 e obtemos o número total de linhas usadas na Planilha1 exibida em uma caixa de mensagem da seguinte maneira:

Portanto, podemos ver na captura de tela acima que '5' é retornado na caixa de mensagem e, como podemos ver na Folha1, o número total de linhas no intervalo usado é 5.

Exemplo # 3

Da mesma forma, se quisermos encontrar o número total de colunas usadas na Planilha1, seguiremos as mesmas etapas acima, exceto por uma ligeira alteração no código da seguinte forma:

Código:

Sub TotalCols () Dim TotalCol As Integer TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub

Agora, quando executamos este código manualmente ou pressionando F5, obtemos o número total de colunas usadas na Planilha1 exibida em uma caixa de mensagem da seguinte maneira:

Portanto, '4' é retornado na caixa de mensagem e, como podemos ver na Planilha1, o número total de colunas no intervalo usado é 4.

Exemplo # 4

Agora, digamos que desejamos encontrar a última linha usada e o número da coluna na Planilha2 do arquivo. Vamos ver o que a Folha2 contém:

Para fazer isso, seguimos as etapas abaixo:

  • Crie um nome de macro no módulo.

Código:

Sub LastRow () End Sub
  • Defina a variável LastRow como Integer.

Código:

Sub LastRow () Dim LastRow As Integer End Sub
  • Agora atribua a variável LastRow com a fórmula para calcular o último número de linha usado:

Código:

Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row End Sub

O Método SpecialCells no VBA do Excel retorna um objeto de intervalo que representa apenas os tipos de células especificados. A sintaxe do método SpecialCells é:

RangeObject.SpecialCells (Type, Value)

No código acima, xlCellTypeLastCell: representa a última célula no intervalo usado.

Nota: 'xlCellType' incluirá até células vazias que tiveram o formato padrão de qualquer uma de suas células alterado.
  • Agora, o valor resultante do número LastRow pode ser exibido e retornado usando uma caixa de mensagem (MsgBox) da seguinte maneira:

Código:

Sub LastRow () Dim LastRow As Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Row MsgBox LastRow End Sub
  • Agora, executamos este código manualmente ou pressionando F5, e obtemos o último número de linha usado na Planilha2 exibido em uma caixa de mensagem da seguinte maneira:

Portanto, podemos ver na captura de tela acima que '12' é retornado na caixa de mensagem e, como podemos ver na Planilha2, o último número de linha usado é 12.

Da mesma forma, se desejarmos encontrar o último número da coluna usada na Planilha2, seguiremos os mesmos passos acima, exceto por uma ligeira mudança no código da seguinte forma:

Código:

Sub LastCol () Dim LastCol As Integer LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell) .Column MsgBox LastCol End Sub

Agora, quando executamos este código manualmente ou pressionando F5, obtemos o último número da coluna usada na Planilha2 exibida em uma caixa de mensagem da seguinte maneira:

Portanto, podemos ver na imagem acima que '3' é retornado na caixa de mensagem e, como podemos ver na Planilha 2, o último número de coluna usado é 3.

Coisas para lembrar sobre o VBA UsedRange

  • VBA UsedRange é um intervalo retângulo.
  • O VBA UsedRange inclui células com quaisquer dados ou sendo formatadas, etc.
  • O Excel VBA UsedRange não inclui necessariamente a célula superior esquerda da planilha.
  • UsedRange não considera necessariamente a célula ativa como usada.
  • UsedRange pode ser usado para encontrar a última linha usada no VBA e para redefinir o intervalo usado, etc.
  • Pressionar as teclas de atalho do Excel CTRL + SHIFT + ENTER em um teclado pode ser usado para estender a seleção de uma célula ativa para a última célula usada em uma planilha.

Artigos interessantes...