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

列のセル値に基づいて行を複製するにはどうすればよいですか?

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

セル1ごとに行を複製するドキュメント

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


矢印青い右バブル VBAコードを使用してセル値に基づいて行を複数回複製する

セルの値に基づいて行全体を複数回コピーおよび複製するには、次のVBAコードが役立つ場合があります。次のようにしてください。

1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

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

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でタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (41)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
これは完璧に機能しました。 '0'の行を非表示にするには、コードに何を追加しますか? これをSKUラベルに使用しています。 素晴らしい解決策をありがとう!
このコメントは、サイトのモデレーターによって最小化されました
愛してる。 ありがとうございました。
このコメントは、サイトのモデレーターによって最小化されました
ありがとうございました! 10行目と11行目の「D」は行の終わりを示しています。これを機能させるには、データ範囲に変更する必要がある場合があります。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
このVBAコードをGoogleAppsスクリプト(Googleスプレッドシート)にホットコンバートすることを知っている人はいますか?
このコメントは、サイトのモデレーターによって最小化されました
上記のコードを使用しましたが、行を貼り付けた後、もうXNUMXステップ必要です。 正しく動作させることができません。 貼り付けた後、行の「N」列にゼロを入れる必要がありますが、元のコピーされた行の「N」の値は保持します。


Sub CopyData()
'Updateby Extendoffice 20160922
xRowを暗くする
バリアントとしての薄暗いVInSertNum
xRow = 1
Application.ScreenUpdating = False
Do While(Cells(xRow、 "A")<> "")
VInSertNum = Cells(xRow、 "J")
If((VInSertNum> 1)And IsNumeric(VInSertNum))Then
Range(Cells(xRow、 "A")、Cells(xRow、 "AN"))。Copy
'Cells(xRow、14).Value=0これはすべての行を実行しました
Range(Cells(xRow + 1、 "A")、Cells(xRow + VInSertNum-1、 "AN"))。Select
'Cells(xRow、14).Value = 0
'これはすべての行を実行しました
Selection.Insert Shift:= xlDown
'Cells(xRow、14).Value=0これは最初の行のみを実行しました
xRow = xRow + VInSertNum-1
'Cells(xRow-1、14).Value = 0
終了する場合
'Cells(xRow-1、14).Value = 0
xRow = xRow + 1
'Cells(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に「はい」が含まれている場合に基づいて、行をXNUMX回だけ複製するコードを知っていますか?私は同様のコードを追跡していますが、セルに基づいて行を複製するものについては「はい」と言っています
このコメントは、サイトのモデレーターによって最小化されました
したがって、このコードを使用していますが、行1だけでなく、xRow = 1で示されるものだけでなく、ドキュメント全体を検索する必要があります。1:2000の範囲に入れようとしていますが、機能しません。 xRow =以下のコードで特定した情報を含むシート上の任意の行を特定するにはどうすればよいですか?


xRowを暗くする
バリアントとしての薄暗い値


xRow = 1:2000

Application.ScreenUpdating = False
Do While(Cells(xRow、 "A")<> "")
値=Cells(xRow、 "D")
Value2 = Cells(xRow、 "A")
そうでない場合((Value = "allegheny general")And IsNumeric(Value2 = G0202))Then
Range(Cells(xRow、 "A")、Cells(xRow、 "D"))。Copy
Range(Cells(xRow + 1、 "A")、Cells(xRow + 1、 "D"))。Select
Selection.Insert Shift:= xlDown
xRow = xRow + 1
終了する場合
xRow = xRow + 1
ループ
Application.ScreenUpdating = False
End Subの
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、これはうまくいきました。 ただし、1000エントリのレポートがあり、エントリ480付近でコードの複製が停止しました。レポート全体のアクションを完了するために追加できるものはありますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、リア、
私は2000行でコードをテストしましたが、うまく機能します。
コードをテストするためにワークシートを送っていただけませんか。
私のメールアドレスはskyyang@ですextendoffice.COM
返事をお待ちしています!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは! 私はそれを機能させました。 これは私の側のエラーでした。レポートには、スクリプトのループを停止させる原因となるいくつかの空白行が非表示になっています。 8,000行のレポートで機能しました。 ありがとうQ
このコメントは、サイトのモデレーターによって最小化されました
こんにちはリアとスカイヤン、
同様の問題が発生しています。スクリプトは約100行のワークシートで正常に機能しますが、それより大きなワークシートでは機能しなくなります。 乗算番号が由来する列の空白行をチェックしましたが、何もありません。 スクリプトがより大きなデータセットで機能しない可能性がある他の理由はありますか?
このコメントは、サイトのモデレーターによって最小化されました
ありがとう! それは私のすべてのトラブルの素晴らしい解決策でした!
このコメントは、サイトのモデレーターによって最小化されました
このスクリプトはまさに私が必要としているもののようですが、実行すると、Selection.Insert Shift:=x1Downという行でエラーが発生します。

これを修正する方法について何か提案はありますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、私は機能していません。文字を削除したいのですが、数字の重複は可能ですか?
このコメントは、サイトのモデレーターによって最小化されました
新しいデータのみを複製するようにモジュールを更新する方法はありますか? 進行中のドキュメントで作業していますが、以前に複製されたデータをコードで複製したくありません。
このコメントは、サイトのモデレーターによって最小化されました
繰り返しセル、連続したキャラクターをそれぞれに追加する方法はありますか? 例
KTE + 0001

KTE + 0002
このコメントは、サイトのモデレーターによって最小化されました
素晴らしい! ありがとうございました。 コピーされた各行(1、2、3、4など)の増分値の数である情報の新しい列(列E)をテーブル(列E)に組み込む方法について、誰かがヒントを与えることができるでしょうか。 X回複製される次のアイテムに到達すると、1から再び番号が付けられ、毎回1ずつ増加します。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは私はこれを試しましたが、複製しているデータに複数の基準があるかどうかを検討する方法はありますか
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

提供された数式を使用してスプレッドシートを作成していますが、エラーが発生しています。 誰かが私の式がどうあるべきか教えてもらえますか?

私のテーブルはAYのもので、数量はKです。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、私はこのコードを調整しようとしていますが、問題があります。
在庫品があります。 各アイテムはXNUMX行で、N回複製する必要があります
スプレッドシートの上部に、セルをA1と呼ぶことができますが、何回複製されていますか? N
値Nが何であれ、私が持っている最初の在庫アイテム(A16、A17)を何度も複製したいと思います。
したがって、コピーされたアイテムはA18で開始する必要があります(20行で、次のアイテムはaXNUMXなどです。
感謝
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、コードはうまく機能します。 また、行が複製されるたびに、日付(平日のみ)に+1を追加したいと思いました。
このコメントは、サイトのモデレーターによって最小化されました
どうもありがとう! これにより多くの時間を節約できたので、データのすべての行をコピーして貼り付けるのに無駄になりました。
大満足!!
このコメントは、サイトのモデレーターによって最小化されました
素晴らしいコード!!! ありがとうございました!!!
ここにはまだコメントが投稿されていません
もっと読む
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護