Selecionar e ativar células

Quando você trabalha com o Microsoft Excel, você geralmente seleciona uma célula ou células e, em seguida, efetua uma ação, como formatar as células ou inserir valores nelas. No Visual Basic, normalmente não é necessário selecionar células antes de modificá-las.

Por exemplo, se você desejar inserir uma fórmula na célula D6 usando o Visual Basic, você não terá que selecionar o intervalo D6. Você precisa apenas retornar o objeto Range e, em seguida, definir a propriedade Formula com a fórmula desejada, conforme mostrado no exemplo seguinte.

Sub EnterFormula()
Worksheets("Sheet1").Range("D6").Formula = "=SUM(D2:D5)"
End Sub

Para exemplos de uso de outros métodos para controlar células sem selecioná-las, consulte Como fazer referência a células e intervalos.

Usar o método Select e a propriedade Selection

O método Select ativa planilhas e objetos em planilhas; a propriedade Selection retorna um objeto representando a seleção atual na planilha ativa da pasta de trabalho ativa. Antes de você poder usar com êxito a propriedade Selection, você precisa ativar uma pasta de trabalho, ativar ou selecionar uma planilha e, em seguida, selecionar um intervalo (ou outro objeto) usando o método Select.

O gravador de macro costuma criar macros que usam o método Select e a propriedade Selection. O procedimento Sub seguinte foi criado pelo uso do gravador de macro, e ilustra como Select e Selection funcionam juntas.

Sub Macro1()
Sheets("Sheet1").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = "Name"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Address"
Range("A1:B1").Select
Selection.Font.Bold = True
End Sub

O exemplo seguinte realiza a mesma tarefa sem ativar nem selecionar a planilha ou as células.

Sub Labels()
With Worksheets("Sheet1")
.Range("A1") = "Name"
.Range("B1") = "Address"
.Range("A1:B1").Font.Bold = True
End With
End Sub

Selecionar células na planilha ativa

Se você usa o método Select para selecionar células, esteja ciente de que Select só funciona na planilha ativa. Se você executar o seu procedimento Sub a partir do módulo, o método Select falhará a menos que o seu procedimento ative a planilha antes de usar o método Select em um intervalo de células. Por exemplo, o procedimento seguinte copia uma linha de Sheet1 para Sheet2 na pasta de trabalho ativa.

Sub CopyRow()
Worksheets("Sheet1").Rows(1).Copy
Worksheets("Sheet2").Select
Worksheets("Sheet2").Rows(1).Select
Worksheets("Sheet2").Paste
End Sub

Ativar uma célula dentro de uma seleção

Você pode usar o método Activate para ativar uma célula dentro de uma seleção. Só pode haver uma célula ativa, mesmo quando um intervalo de células é selecionado. O procedimento seguinte seleciona um intervalo e, em seguida, ativa uma célula dentro do intervalo sem alterar a seleção.

Sub MakeActive()
Worksheets("Sheet1").Activate
Range("A1:D4").Select
Range("B2").Activate
End Sub