クッキーは、私たちは私たちのサービスを提供するのに役立ちます。 当社のサービスを使用することで、クッキーの我々の使用に同意するものとします。
ヒント:他の言語はGoogle翻訳されています。 訪問することができます English このリンクのバージョン。
ログイン
x
or
x
x
登録
x

or

列のセル値に基づいて行を複製する方法

たとえば、列Dの数値のリストを含む一連のデータがあります。次に、列Dの数値に基づいて行全体を何回も複製して、次の結果を得たいとします。 Excelのセル値に基づいて行を複数回コピーするにはどうすればよいですか?

セル1による文書の重複行

VBAコードのセル値に基づいて複数の行を複数回複製する


矢印青い右の泡 VBAコードのセル値に基づいて複数の行を複数回複製する

セルの値に基づいて行全体を複数回コピーして複製するには、次のVBAコードを参考にしてください。

1。 押さえつける Alt + F11 キーを押して アプリケーション用Microsoft Visual Basic 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードを モジュール 窓。

VBAコード:セルの値に基づいて行を複数回複製する:

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。 次に、 F5 キーを使用してこのコードを実行すると、必要に応じて列Dのセル値に基づいて行全体が複数回複製されます。

:上記のコードでは、文字 A データ範囲の開始列を示し、文字 D に基づいて行を複製する列の文字です。 必要に応じて変更してください。



推奨生産性ツール

Office Tab

金星1 Chrome、Firefox、新しいInternet Explorerと同様に、Excelやその他のOfficeソフトウェアに便利なタブを持たせる。

Kutools for Excel

金星1 素晴らしい! 5分で生産性を向上させます。 特別なスキルは必要ありません。毎日2時間節約できます!

金星1 300 Excelの新機能は、Excelを非常に簡単かつ強力にする:

  • データを失うことなくセル/行/列をマージします。
  • 複数のシートとブックを結合して統合する。
  • 範囲を比較し、複数の範囲をコピーし、テキストを日付、単位、通貨の変換に変換します。
  • 色数、ページング小計、高度なソートとスーパーフィルター、
  • 詳細選択/挿入/削除/テキスト/書式/リンク/コメント/ワークブック/ワークシートツール...

Kutools for 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