Vba: como copiar linhas visíveis para outra planilha
Você pode usar a seguinte sintaxe no VBA para copiar apenas linhas visíveis de uma planilha para outra:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
Esta macro específica irá copiar cada linha visível no intervalo A1:D999 de Sheet1 e colá-las começando na célula A1 de Sheet2 .
Nota : A linha Application.CutCopyMode = False especifica que o modo recortar e copiar deve ser desabilitado após a execução da macro.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: copie linhas visíveis para outra planilha usando VBA
Suponha que temos o seguinte conjunto de dados na Planilha 1 , que contém informações sobre vários jogadores de basquete:
Agora suponha que aplicamos um filtro ao conjunto de dados para mostrar apenas as linhas onde o nome do time é igual a Mavs ou Spurs:
Agora, digamos que queremos usar o VBA para copiar apenas células visíveis da Planilha1 para a Planilha2.
Podemos criar a seguinte macro para fazer isso:
SubCopyVisibleRows ()
Dim sourceWS As Worksheet
Dim destinationWS As Worksheet
Set sourceWS = ThisWorkbook.Sheets(" Sheet1 ")
Set destinationWS = ThisWorkbook.Sheets(" Sheet2 ")
sourceWS.Range(" A1:D999 ").SpecialCells(xlCellTypeVisible).Copy
destinationWS.Cells(1, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
Quando executamos esta macro, recebemos a seguinte saída em Sheet2 :
Observe que todas as linhas visíveis em Sheet1 foram copiadas e coladas em Sheet2 .
Nota nº 1 : usamos xlCellTypeVisible na macro para especificar que queríamos apenas copiar células visíveis.
Nota nº 2 : você pode encontrar a documentação completa para o método VBA Copy aqui .
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
VBA: Como encontrar a última linha usada
VBA: copie linhas para outra planilha com base em critérios
VBA: Como colar valores apenas sem formatação