Os cookies nos ajudam a oferecer nossos serviços. Ao utilizar nossos serviços, você concorda com a nossa utilização de cookies.
Dica: outros idiomas são traduzidos pelo Google. Você pode visitar o English versão deste link.
Entrar
x
or
x
x
Cadastre-se
x

or

Como duplicar linhas com base no valor da célula em uma coluna?

Por exemplo, eu tenho um intervalo de dados que contém uma lista de números na coluna D, e agora, eu quero duplicar as linhas inteiras um número de vezes com base nos valores numéricos na coluna D para obter o seguinte resultado. Como eu poderia copiar as linhas várias vezes com base nos valores da célula no Excel?

doc duplicado linhas por célula 1

Duplicar linhas várias vezes com base em valores de células com código VBA


arrow blue right bubble Duplicar linhas várias vezes com base em valores de células com código VBA

Para copiar e duplicar as linhas inteiras várias vezes com base nos valores da célula, o seguinte código VBA pode ajudá-lo, faça o seguinte:

1. Mantenha pressionado o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole o seguinte código no Módulo Janela.

Código VBA: linhas duplicadas várias vezes com base no valor da célula:

Sub CopyData()
'Updateby Extendoffice 20160922
    Dim xRow As Long
    Dim VInSertNum As Variant
    xRow = 1
    Application.ScreenUpdating = False
    Do While (Cells(xRow, "A") <> "")
        VInSertNum = Cells(xRow, "D")
        If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
           Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
           Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
           Selection.Insert Shift:=xlDown
           xRow = xRow + VInSertNum - 1
        End If
        xRow = xRow + 1
    Loop
    Application.ScreenUpdating = False
End Sub

3. Então aperte F5 chave para executar este código, as linhas inteiras foram duplicadas várias vezes com base no valor da célula na coluna D, conforme você precisa.

notas: No código acima, a carta A indica a coluna de início do seu intervalo de dados e a letra D é a coluna que você deseja duplicar as linhas com base em. Por favor, altere-os para sua necessidade.



Ferramentas de produtividade recomendadas

Office Tab

ouro star1 Traga guias úteis para o Excel e outros softwares do Office, como o Chrome, o Firefox e o novo Internet Explorer.

Kutools for Excel

ouro star1 Surpreendente! Aumente sua produtividade em minutos 5. Não precisa de habilidades especiais, economize duas horas por dia!

ouro star1 300 Novos recursos para o Excel, Faça o Excel muito fácil e poderoso:

  • Mesclar células / linhas / colunas sem perder dados.
  • Combine e Consolide várias folhas e pastas de trabalho.
  • Comparar intervalos, copiar intervalos múltiplos, converter texto para data, unidade e conversão de moeda.
  • Contagem de cores, subtotais de paginação, classificação avançada e super filtro,
  • Mais Selecionar / Inserir / Excluir / Texto / Formato / Link / Comentário / Guias de trabalho / Ferramentas de trabalho ...

Tira de tela de Kutools para Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    KAS · 1 months ago
    Is there a way to update the module to only duplicate new data? I'm working on an ongoing document and do not want the code to duplicate data that has been previously duplicated.
  • To post as a guest, your comment is unpublished.
    Gerardo Enrique Heras Araujo · 2 months ago
    hi, for me is no working, I want to remove letters and number duplicate is possible?
  • To post as a guest, your comment is unpublished.
    Naomi · 2 months ago
    This script seems to be exactly what I need, however, when I run it I am getting an error on the line Selection.Insert Shift:=x1Down

    Any suggestions on how I fix this?
  • To post as a guest, your comment is unpublished.
    Manuel F · 2 months ago
    Thanks! it has been a great solution for all my troubles!
  • To post as a guest, your comment is unpublished.
    Leah · 3 months ago
    Hello, this worked great. However, I have a report with 1000 entries and the code stopped duplicating around entry 480. Is there something that I can add so that it completes the action on the entire report?
    • To post as a guest, your comment is unpublished.
      skyyang · 3 months ago
      Hello, Leah,
      I have tested the code in 2000 rows, and it works well.
      Could you send your worksheet to me for testing the code?
      My email address is skyyang@extendoffice.com
      Look forward to your reply!
      • To post as a guest, your comment is unpublished.
        Leah · 3 months ago
        Hello! I got it to work. It was an error on my side, the report had a few blank rows that were hidden that were causing the script to stop looping. It worked for my report with 8,000 rows! Thank youQ