Planilha de cópia do VBA - como usar a planilha. Copiar?

Planilha de cópia do Excel VBA

Às vezes, podemos precisar copiar um intervalo específico de células de uma planilha para outra ou na própria planilha. Em alguns casos, podemos precisar copiar toda a planilha para uma nova planilha. Você pode estar familiarizado com a cópia de um intervalo de células, mas que tal copiar a planilha inteira usando o VBA. Neste artigo, forneceremos uma explicação detalhada de como copiar a planilha para outra pasta de trabalho no VBA.

Planilha. Método de cópia em VBA

Primeiro, dê uma olhada na sintaxe do método Worksheet Copy.

Folha de trabalho (). Copiar (antes, depois)

O método de cópia contém dois argumentos Antes e Depois; ambos são opcionais.

  1. Antes: A planilha de destino que estamos copiando. Se você especificar isso, não poderá usar o argumento After .
  2. Depois: A planilha de destino que estamos copiando. Se você especificar isso, não poderá usar o argumento Before .

Como esses dois argumentos são opcionais, se você os deixar em branco, a planilha de destino será copiada para uma nova pasta de trabalho, o Microsoft Excel cria automaticamente uma nova pasta de trabalho.

Veremos exemplos do mesmo agora na seção de exemplos.

Exemplos de cópia de planilha em VBA

Exemplo 1

Por exemplo, observe os dados abaixo na planilha chamada “Janeiro”.

Temos os dados acima na planilha chamada “Janeiro” .

  • Então, precisamos copiar a planilha acima após a planilha chamada “ Sheet1 ”. Primeiro, consulte a planilha usando o objeto planilhas.

Código:

Sub Worksheet_Copy_Example1 () Planilhas ("janeiro") End Sub
  • Em seguida, insira o método “ Copiar ”.

Código:

Sub Worksheet_Copy_Example1 () Planilhas ("janeiro"). Copy End Sub
  • Como você pode ver acima, quando começamos a digitar, não conseguimos ver a lista do IntelliSense para o objeto planilhas, este é um dos problemas significativos para iniciantes se eles usarem diretamente o objeto PLANILHAS, mas isso pode ser eliminado usando variáveis, então defina o variável como “ Planilha ”.

Código:

Sub Worksheet_Copy_Example1 () Dim Ws como Worksheet End Sub
  • Agora para esta variável defina a referência da planilha “ Janeiro ”.

Código:

Sub Worksheet_Copy_Example1 () Dim Ws as Worksheet Set Ws = Worksheets ("Janeiro") End Sub
  • Então, agora usando a variável “ Ws ” podemos facilmente nos referir à planilha chamada “ Janeiro ”. Portanto, insira o nome da variável “ Ws ” e escolha o método “ Copiar ”.

Lá vamos nós podemos ver a lista do IntelliSense mostrando todas as propriedades e métodos dos objetos de planilha, graças à declaração da variável.

  • Escolha o método “ Copiar ”, e podemos ver os argumentos do método “ Copiar ”.
  • Uma vez que precisamos copiar a planilha após a planilha “ Plan1 ”, primeiro acesse o argumento “ Depois ” inserindo o nome do argumento como o abaixo.

Depois que o argumento for destacado, uma vez que usamos o nome do argumento com o símbolo " igual por definição " (: =)

  • Agora insira o nome da folha usando o objeto “ Folhas ”.

Código:

Sub Worksheet_Copy_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Janeiro") Ws.Copy After: = Sheets ("Sheet1") End Sub
  • Acabamos. Isto irá copiar a planilha “ janeiro ”, após a planilha “ Sheet1 ”.

Pronto, copiamos a planilha de janeiro à direita da “Planilha1”. Uma das coisas padrão aqui é que o nome da planilha é o mesmo da planilha copiada com uma contagem numérica da planilha entre colchetes, neste caso é “(2)”.

  • Para alterar o nome da planilha, adicione a parte do código abaixo ao código acima.
  • So the overall code is below.

Code:

Sub Worksheet_Copy_Example1() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets("Sheet1") ActiveSheet.Name = “New Copied Sheet” End Sub
  • Now run the code and see what happens.

Example #2

Similarly, if you want to copy the worksheet “Sheet1” before the worksheet “January” uses the below code.

Code:

Sub Worksheet_Copy_Example2() Dim Ws As Worksheet Set Ws = Worksheets("Sheet1") Ws.Copy Before:=Sheets("January") ActiveSheet.Name = "New Sheet1" End Sub
  • So this will create a sheet-like the below.

Example #3

Similarly, if you want to copy the worksheet after the last worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example3() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Last Sheet" End Sub

Output:

The only change we made is we have used “Sheets. Count” method to count how many sheets are there in the workbook.

Example #4

Similarly, if you want to copy the worksheet before the first worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example4() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(1) ActiveSheet.Name = "First Sheet" End Sub

Output:

In this case, we have used “Sheets(1)” so this will place the worksheet copied before the first worksheet of the workbook.

Things to Remember

  • Suppose you don’t use either Before & After argument of the Worksheet. Copy worksheets will be copied to the new workbook altogether.
  • O nome da planilha copiada padrão será o mesmo seguido pela contagem dessa planilha copiada.

Artigos interessantes...