Excel vba宏根据单元格整数值多次复制行

标签 excel vba duplicates row

我正在寻找一个 VBA Excel 宏,它将完整的行复制到另一个工作表。它需要根据单元格整数值创建该行的额外重复副本。

当您使用邮件合并来创建文档或标签的多个副本时,这非常有用。我找到了几个接近的答案,但没有一个可以复制整行

输入
第 1 列 |列2 |第 3 栏 |第 4 栏
狗 |喜欢 |猫 | 1
老鼠 |喜欢 |坚果 | 3
猫 |咀嚼|老鼠 | 2

输出 第 1 列 |列2 |第 3 栏 |第 4 栏
狗 |喜欢 |猫
老鼠 |喜欢 |坚果
老鼠 |喜欢 |坚果
老鼠 |喜欢 |坚果
猫 |咀嚼|老鼠
猫 |咀嚼|老鼠

输出 col4 中的值可能存在,对我的情况并不重要

最佳答案

假设包含数据的工作表的名称为“Sheet1”,输出工作表的名称为“Sheet2”,并且复制的次数位于 D 行中 - 此代码将起作用。您需要首先修改它以满足您的需求!

Sub DuplicateRows()

Dim currentRow As Integer
Dim currentNewSheetRow As Integer: currentNewSheetRow = 1

For currentRow = 1 To 3 'The last row of your data

    Dim timesToDuplicate As Integer
    timesToDuplicate = CInt(Sheet1.Range("D" & currentRow).Value2)

    Dim i As Integer
    For i = 1 To timesToDuplicate

        Sheet2.Range("A" & currentNewSheetRow).Value2 = Sheet1.Range("A" & currentRow).Value2
        Sheet2.Range("B" & currentNewSheetRow).Value2 = Sheet1.Range("B" & currentRow).Value2
        Sheet2.Range("C" & currentNewSheetRow).Value2 = Sheet1.Range("C" & currentRow).Value2

        currentNewSheetRow = currentNewSheetRow + 1

    Next i

Next currentRow

End Sub

关于Excel vba宏根据单元格整数值多次复制行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11524408/

相关文章:

vba - 使用 VBA 将自定义组添加到 Outlook 2010 中的“主页”选项卡

vba - Excel VBA 中的 TypeName 返回什么?

ruby - 删除并合并 CSV 文件中的重复记录

vba - 使用VBA,如何从Excel中在Word中编写不同标题级别的文本?

vba - 了解 Excel VBA 中 "special cells"的语法

excel - VBA-查找命名范围中第一个单元格的位置以引用电子表格的标题行

mysql - 从 MySQL 表中删除两个字段相同的重复项

excel - 删除没有颜色的工作表,从所有工作表中删除评论,断开所有源的链接

vba - 复制嵌入图像而不使用形状

mysql - 查找并删除 MySQL 中的重复行