Selecionar um intervalo
Esses exemplos mostram como selecionar o intervalo usado, que inclui células formatadas que não contêm dados e como selecionar um intervalo de dados, que inclui células que contêm dados reais.
Código de exemplo fornecido por: Tom Urtis, Atlas programação de gerenciamento
Este exemplo mostra como selecionar o intervalo usado na planilha atual, que inclui células formatadas que não contêm dados, usando a propriedade UsedRange do objeto Worksheet e o método Select do objeto Range . Em seguida, ele exibe o endereço do intervalo para o usuário.
Sub SelectUsedRange()
ActiveSheet.UsedRange.Select
MsgBox "The used range address is " & ActiveSheet.UsedRange.Address(0, 0) & ".", 64, "Used range address:"
End Sub
Este exemplo mostra como selecionar um intervalo de dados na planilha atual, começando na célula A1 e exibir o endereço do intervalo para o usuário. O intervalo de dados não inclui células formatadas que não contêm dados. Para obter o intervalo de dados, este exemplo encontra a última linha e a última coluna que contêm dados reais usando o método Localizar do objeto Range .
Sub SelectDataRange()
Dim LastRow As Long, LastColumn As Long
LastRow = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastColumn = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Range("A1").Resize(LastRow, LastColumn).Select
MsgBox "The data range address is " & Selection.Address(0, 0) & ".", 64, "Data-containing range address:"
End Sub
Este exemplo mostra como selecionar um intervalo de dados na planilha atual quando você não sabe o local inicial e exibir o endereço do intervalo para o usuário. O intervalo de dados não inclui células formatadas que não contêm dados. Para obter o intervalo de dados, este exemplo encontra a primeira e última linha e coluna que contêm dados reais usando o método Localizar do objeto Range .
Sub UnknownRange()
If WorksheetFunction.CountA(Cells) = 0 Then
MsgBox "There is no range to be selected.", , "No cells contain any values."
Exit Sub
Else
Dim FirstRow&, FirstCol&, LastRow&, LastCol&
Dim myUsedRange As Range
FirstRow = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByRows).Row
On Error Resume Next
FirstCol = Cells.Find(What:="*", SearchDirection:=xlNext, SearchOrder:=xlByColumns).Column
If Err.Number <> 0 Then
Err.Clear
MsgBox _
"There are horizontally merged cells on the sheet" & vbCrLf & _
"that should be removed in order to locate the range.", 64, "Please unmerge all cells."
Exit Sub
End If
LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
LastCol = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
Set myUsedRange = Range(Cells(FirstRow, FirstCol), Cells(LastRow, LastCol))
myUsedRange.Select
MsgBox "The data range on this worksheet is " & myUsedRange.Address(0, 0) & ".", 64, "Range address:"
End If
End Sub
MVP Tom Urtis é o fundador da Atlas programação gerenciamento, uma empresa com soluções de gerenciamento completas de serviço do Microsoft Office e Excel localizada no Silicon Valley. Tom tem mais de 25 anos de experiência do gerenciamento de negócios e desenvolvimento dos aplicativos Microsoft e é co-autor de "Holy Macro! São 2.500 exemplos de VBA do Excel."
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.