As cookies axúdanos a entregar os nosos servizos. Ao usar os nosos servizos, acepta o noso uso das cookies.
Consello: outros idiomas están traducidos a Google. Podes visitar o English versión desta ligazón.
Iniciar sesión
x
or
x
x
Register
x

or

Como duplicar filas en función do valor das celas nunha columna?

Por exemplo, teño un intervalo de datos que contén unha lista de números na columna D, e agora quero duplicar as filas completas varias veces en función dos valores numéricos na columna D para obter o seguinte resultado. Como podo copiar as filas varias veces en función dos valores das celas en Excel?

doc filas duplicadas por celular 1

Duplica filas varias veces en función dos valores das celas con código VBA


frecha burbulla dereita azul Duplica filas varias veces en función dos valores das celas con código VBA

Para copiar e duplicar as filas enteiras varias veces en función dos valores das celas, o seguinte código VBA pode axudarche, faga o seguinte:

1. Manteña o botón ALT + F11 chaves para abrir a Microsoft Visual Basic para aplicacións fiestra.

2. Prema Inserir > Módulos, e pegue o seguinte código no Módulos Fiestra.

Código VBA: Duplica filas varias veces en función do valor da cela:

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. A continuación, preme F5 Para executar este código, as filas completas duplicáronse varias veces en función do valor da cela na columna D como necesites.

Nota: No código anterior, a letra A indica a columna de inicio do seu intervalo de datos e a letra D é a letra de columna que quere duplicar as filas en base a. Múdanos á túa necesidade.



Ferramentas de produtividade recomendadas

Tabulación de Office

estrela de ouro1 Traia páxinas útiles para Excel e outro software de Office, como Chrome, Firefox e Internet Explorer novo.

Kutools para Excel

estrela de ouro1 Sorprendente! Aumenta tu productividad en 5 minutos. Non necesitas habilidades especiais, garda dúas horas todos os días.

estrela de ouro1 300 Novidades para Excel, Excel moi fácil e poderoso:

  • Combina celas / filas / columnas sen perder datos.
  • Combina e consolida varias follas e libros de traballo.
  • Comparar intervalos, copiar varios intervalos, converter texto a data, conversión de unidade e moeda.
  • Conta por cores, subtotales de paginación, clasificación avanzada e filtro super,
  • Máis Seleccionar / Inserir / Eliminar / Texto / Formato / Ligazón / Comentario / Libros / Follas de ferramentas ...

Pantalla 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