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 for Applications 窗口。

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.COM
期待你的回复!
網站主持人對此評論進行了最小化
你好! 我讓它工作。 這是我這邊的一個錯誤,報告中有一些隱藏的空白行導致腳本停止循環。 它適用於我的 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保護