Escrevi o seguinte prompt pro chatGPT:
Faça um código VBA que selecione o conteúdo a partir da celula selecionada e percorra linhas e colunas até encontrar uma célula vazia, copie este conteúdo e cole em uma planilha chamada "Destino"
Ele me trouxe o código abaixo que funcionou perfeitamente:
Sub CopiarBlocoParaDestino()
Dim wsOrigem As Worksheet
Dim wsDestino As Worksheet
Dim rngInicio As Range
Dim rngFim As Range
Dim rngBloco As Range
Dim ultimaLinha As Long
Dim ultimaColuna As Long
Dim linhaDestino As Long
' Definir a planilha de origem (planilha ativa)
Set wsOrigem = ActiveSheet
' Definir a célula inicial (célula atualmente selecionada)
Set rngInicio = ActiveCell
' Encontrar a última linha do bloco de dados
ultimaLinha = rngInicio.Row
Do While wsOrigem.Cells(ultimaLinha + 1, rngInicio.Column).Value <> ""
ultimaLinha = ultimaLinha + 1
Loop
' Encontrar a última coluna do bloco de dados
ultimaColuna = rngInicio.Column
Do While wsOrigem.Cells(rngInicio.Row, ultimaColuna + 1).Value <> ""
ultimaColuna = ultimaColuna + 1
Loop
' Definir o intervalo de células a serem copiadas
Set rngBloco = wsOrigem.Range(rngInicio, wsOrigem.Cells(ultimaLinha, ultimaColuna))
' Verificar se a planilha "Destino" existe, caso contrário, criá-la
On Error Resume Next
Set wsDestino = ThisWorkbook.Sheets("Destino")
If wsDestino Is Nothing Then
Set wsDestino = ThisWorkbook.Sheets.Add
wsDestino.Name = "Destino"
End If
On Error GoTo 0
' Encontrar a próxima linha vazia na planilha "Destino"
linhaDestino = wsDestino.Cells(wsDestino.Rows.Count, 1).End(xlUp).Row + 1
' Copiar e colar os dados
rngBloco.Copy
wsDestino.Cells(linhaDestino, 1).PasteSpecial Paste:=xlPasteValues
' Limpar a área de transferência
Application.CutCopyMode = False
' Mensagem de confirmação
MsgBox "Bloco de células copiado com sucesso para a planilha 'Destino'!", vbInformation, "Concluído"
End Sub