Como usar uma célula como variável no vba?
Para usar um intervalo ou uma única célula como variável, você deve primeiro declarar essa variável com o tipo de dados intervalo. Depois de fazer isso, você precisa especificar um intervalo de uma célula para esta variável usando o objeto range. Isso também lhe dá acesso a todas as propriedades e métodos que você pode usar com um intervalo.
- Use a palavra-chave “Dim” e insira o nome da variável.
- Declare a palavra-chave como Range .
- Digite o nome da variável.
- Especifique o intervalo que deseja atribuir à variável.
Definir seleção para variável de intervalo
Você também pode usar o intervalo selecionado para uma variável e depois usar essa variável para acessar propriedades e métodos. Considere o seguinte código.
Sub vba_range_variable() Dim rng As Range Set rng = Selection Selection.Clear End Sub
Mas há uma coisa que você precisa ter cuidado: ao selecionar um objeto diferente de um intervalo, o VBA mostrará um erro.
Mas também é um método dinâmico onde você não precisa alterar o intervalo repetidamente.
Copie um intervalo usando uma variável
Depois de declarar uma variável como um intervalo, você também pode copiar esse intervalo usando o nome da variável. Suponha que você tenha declarado o intervalo A1:A10 como variável rng (exemplo acima), você pode copiá-lo usando o código a seguir.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") rng.Copy End Sub
Usando a variável de intervalo em uma função
Você também pode usar uma variável de intervalo para se referir a um intervalo em uma função ao escrever uma macro. Considere o seguinte código.
Sub vba_range_variable() Dim iNames As Variant Dim rng As Range Set rng = Range("A1:A10") Range("B1") = WorksheetFunction.Max(rng) End Sub
Leva valores no intervalo A1:A10 e como é necessário usar a variável “rng”, usamos a variável no valor máximo para produzi-lo.
Relacionado: Como usar WorksheetFunction em VBA
Conte o número de linhas e colunas
Como eu disse antes, depois de especificar uma variável como um intervalo, você também obterá todas as propriedades e métodos de acesso. Imagine se você quiser contar linhas e colunas. Aqui está o código que pode ser usado.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") MsgBox "This range has " & _ rng.Rows.Count & " row(s) and " & _ rng.Columns.Count & " coulmn(s)." End Sub
Ao executar esse código, ele exibe uma mensagem com o número de linhas e colunas no intervalo especificado na variável.
Definição de planilha com intervalo
Em todos os exemplos acima, utilizamos o intervalo sem citar a planilha, portanto, ao executar esse código, o VBA sempre fará referência ao intervalo da planilha ativa. Mas se quiser fazer referência a uma planilha específica, você precisa usar o objeto planilha com o intervalo.
Dim rng As Range Set rng = Worksheets("Sheet1").Range("A1:A10")