Note: The other languages of the website are Google-translated. Back to English

如何根据列中的单元格值复制行?

例如,我有一个数据范围,其中包含D列中的数字列表,现在,我想基于D列中的数值将整个行重复多次,以获得以下结果。 如何根据Excel中的单元格值多次复制行?

doc按单元格1重复的行

使用VBA代码根据单元格值多次复制行


箭头蓝色右气泡 使用VBA代码根据单元格值多次复制行

要基于单元格值多次复制和复制整行,以下VBA代码可能会为您提供帮助:

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA代码:根据单元格值多次复制行:

Sub CopyData()
'Updateby Extendoffice
    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。 然后按 F5 键以运行此代码,根据需要,根据D列中的单元格值重复了整行。

备注:在上面的代码中,字母 A 表示您数据范围的开始列,以及字母 D 是您要基于其复制行的列字母。 请根据需要更改它们。


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (41)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
这非常有效。 我会在您的代码中添加什么以使任何带有“0”的行消失? 我们将其用于 SKU 标签。 感谢您的出色解决方案!
该评论由网站上的主持人最小化
我爱你。 谢谢你。
该评论由网站上的主持人最小化
谢谢! 第 10 行和第 11 行“D”表示行的末尾,这可能需要更改为您的数据范围以使其正常工作。
该评论由网站上的主持人最小化
嗨,
有人知道将此 VBA 代码热转换为 Google Apps 脚本(谷歌表格)吗?
该评论由网站上的主持人最小化
我使用了上面的代码,效果很好,但在粘贴行后我需要再执行一步。 我只是无法让它正常工作。 我需要它在粘贴后在行中的“N”列中输入零,但在原始复制行中保留“N”中的值。


子复制数据()
'更新通过 Extendoffice 20160922
将 xRow 变暗
将 VInSertNum 调暗为变体
x行 = 1
Application.ScreenUpdating = False
Do While (Cells(xRow, "A") <> "")
VInSertNum = 单元格(xRow,“J”)
If ((VInSertNum > 1) And IsNumeric(VInSertNum)) 那么
范围(单元格(xRow,“A”),单元格(xRow,“AN”))。复制
' Cells(xRow, 14).Value = 0 这做了所有行
范围(单元格(xRow + 1,“A”),单元格(xRow + VInSertNum - 1,“AN”))。选择
'细胞(xRow, 14).Value = 0
'这做了所有的行
Selection.Insert Shift:= xlDown
' Cells(xRow, 14).Value = 0 这只做了第一行
xRow = xRow + VInSertNum - 1
'单元格(xRow - 1, 14).Value = 0
结束如果
' 单元格(xRow - 1, 14).Value = 0
x行 = x行 + 1
' 单元格(xRow + 1, 14).Value = 0
循环
'Cells(xRow, 14).Value = 0 这没有行
Application.ScreenUpdating = False
END SUB
该评论由网站上的主持人最小化
嗨史蒂夫,你能做到这一点。 我的要求是一样的:(
该评论由网站上的主持人最小化
大家好,
也许下面的文章可以帮助你,请检查它:
https://www.extendoffice.com/documents/excel/3682-excel-copy-and-insert-row-multiple-times.html
该评论由网站上的主持人最小化
您是否知道根据是否说单元格 d 包含“是”,仅复制一次该行的代码是什么-我一直在追逐类似的代码,但是对于会根据单元格说“是”来复制行的东西
该评论由网站上的主持人最小化
所以我正在使用此代码,但我希望它搜索整个文档,而不仅仅是第 1 行或 xRow = 1 指示的任何内容。我试图输入范围 1:2000 但它不起作用。 如何识别 xRow = 工作表上包含我在下面代码中识别的信息的任何行?


将 xRow 变暗
作为变体的暗值


xRow = 1:2000

Application.ScreenUpdating = False
Do While (Cells(xRow, "A") <> "")
值 = 单元格(xRow,“D”)
值 2 = 单元格(xRow,“A”)
If Not ((Value = "allegheny general") And IsNumeric(Value2 = G0202)) 那么
范围(单元格(xRow,“A”),单元格(xRow,“D”))。复制
范围(单元格(xRow + 1,“A”),单元格(xRow + 1,“D”))。选择
Selection.Insert Shift:= xlDown
x行 = x行 + 1
结束如果
x行 = x行 + 1
循环
Application.ScreenUpdating = False
END SUB
该评论由网站上的主持人最小化
你好,这个效果很好。 但是,我有一个包含 1000 个条目的报告,并且代码停止在条目 480 周围重复。是否可以添加一些内容以完成对整个报告的操作?
该评论由网站上的主持人最小化
你好,莉亚,
我已经在 2000 行中测试了代码,它运行良好。
你能把你的工作表发给我来测试代码吗?
我的邮箱是skyyang@extendoffice
期待你的回复!
该评论由网站上的主持人最小化
你好! 我让它工作。 这是我这边的一个错误,报告中有一些隐藏的空白行导致脚本停止循环。 它适用于我的 8,000 行报告! 谢谢Q
该评论由网站上的主持人最小化
你好 Leah 和 Skyyang,
我遇到了类似的问题 - 该脚本在大约 100 行的工作表中工作正常,但它停止工作更大的工作。 我检查了乘数来自的列中的空白行并且没有。 脚本可能不适用于较大数据集的任何其他原因?
该评论由网站上的主持人最小化
谢谢! 这是解决我所有麻烦的好方法!
该评论由网站上的主持人最小化
这个脚本似乎正是我所需要的,但是,当我运行它时,我在 Selection.Insert Shift:=x1Down 行出现错误

关于我如何解决这个问题的任何建议?
该评论由网站上的主持人最小化
嗨,对我来说没有工作,我想删除字母和数字重复是可能的吗?
该评论由网站上的主持人最小化
有没有办法更新模块只复制新数据? 我正在处理一个正在进行的文档,不希望代码复制以前复制的数据。
该评论由网站上的主持人最小化
有什么方法可以添加到每个重复的单元格,一个连续的字符? 例子
KTE+0001

KTE+0002
该评论由网站上的主持人最小化
迷人的! 谢谢你。 我想知道是否有人可以提示我如何将新的信息列合并到表(E列)​​中,这是每个复制行的递增值,1、2、3、4等......然后当它到达下一个要复制 X 次的项目时,它将从 1 重新开始编号,并且每次增加 1。
该评论由网站上的主持人最小化
嗨,我已经尝试过了,但是有没有办法考虑我正在复制的数据是否有多个标准
该评论由网站上的主持人最小化
嗨,

我正在使用提供的公式创建电子表格,但我有错误。 请问有人可以让我知道我的公式应该是什么吗?

我的表来自 AY,数量为 K。
该评论由网站上的主持人最小化
您好,我一直在尝试调整此代码,但遇到了困难。
我有库存物品。 每个项目是两行。并希望它们重复 N 次
在电子表格的顶部,我有一个单元格,我们称之为 A1,我有多少次被复制? ñ
无论 N 的值是多少,我都想多次复制我拥有的初始库存项目(A16,A17)。
所以复制的项目应该从 A18 开始(它是两行,下一个项目 a20 等。
谢谢
该评论由网站上的主持人最小化
嗨,代码效果很好。 每次复制该行时,我还想在日期中添加+1(仅限工作日)。
该评论由网站上的主持人最小化
非常感谢! 这为我节省了很多时间,以至于我过去常常浪费复制和粘贴所有数据行。
太棒了!!
该评论由网站上的主持人最小化
很棒的一段代码!!! 谢谢!!!
这里还没有评论
加载更多
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护