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

Bagaimana cara menduplikasi baris berdasarkan nilai sel di kolom?

Misalnya, saya memiliki rentang data yang berisi daftar angka di kolom D, dan sekarang, saya ingin menduplikasi seluruh baris beberapa kali berdasarkan nilai numerik di kolom D untuk mendapatkan hasil berikut. Bagaimana saya bisa menyalin baris beberapa kali berdasarkan nilai sel di Excel?

doc menggandakan baris demi sel 1

Gandakan baris beberapa kali berdasarkan nilai sel dengan kode VBA


panah gelembung kanan biru Gandakan baris beberapa kali berdasarkan nilai sel dengan kode VBA

Untuk menyalin dan menduplikasi seluruh baris beberapa kali berdasarkan nilai sel, kode VBA berikut dapat membantu Anda, lakukan seperti ini:

1. Tahan ALT + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.

2. Klik Menyisipkan > Modul, dan tempel kode berikut di Modul Jendela.

Kode VBA: Baris duplikat beberapa kali berdasarkan nilai sel:

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. Lalu tekan F5 kunci untuk menjalankan kode ini, seluruh baris telah digandakan beberapa kali berdasarkan nilai sel di kolom D yang Anda butuhkan.

Note: Dalam kode di atas, huruf A menunjukkan kolom awal rentang data Anda, dan hurufnya D adalah huruf kolom yang Anda inginkan untuk menduplikasi baris berdasarkan. Harap ubah sesuai kebutuhan Anda.


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2019 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Tingkatkan produktivitas Anda hingga 50%, dan kurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah
Urutkan komentar berdasarkan
komentar (40)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Ini bekerja dengan sempurna. Apa yang akan saya tambahkan ke kode Anda untuk menghilangkan garis dengan '0'? Kami menggunakan ini untuk label SKU. Terima kasih atas solusi hebatnya!
Komentar ini diminimalkan oleh moderator di situs
Aku mencintaimu. Terima kasih.
Komentar ini diminimalkan oleh moderator di situs
Terima kasih! baris 10 dan 11 "D" menunjukkan akhir baris dan ini mungkin perlu diubah ke rentang data Anda untuk membuatnya berfungsi.
Komentar ini diminimalkan oleh moderator di situs
Hai,
Seseorang tahu panas mengonversi kode VBA ini ke skrip Google Apps (lembar google)?
Komentar ini diminimalkan oleh moderator di situs
Saya menggunakan kode di atas yang berfungsi dengan baik tetapi saya perlu satu langkah lagi setelah baris ditempel. Saya tidak bisa membuatnya bekerja dengan benar. Saya membutuhkannya untuk meletakkan nol di kolom "N" di baris setelah ditempelkan tetapi pertahankan nilainya di "N" di baris asli yang disalin.


Sub SalinData()
'Perbarui oleh Extendoffice 20160922
Redupkan xRow Selamanya
Dim VInSertNum Sebagai Varian
xBaris = 1
Application.ScreenUpdating = Salah
Lakukan Sementara (Sel(xRow, "A") <> "")
VInSertNum = Sel(xRow, "J")
Jika ((VInSertNum > 1) Dan IsNumeric(VInSertNum)) Maka
Rentang(Sel(xRow, "A"), Sel(xRow, "AN")).Copy
' Sel(xRow, 14).Nilai = 0 ini melakukan semua baris
Rentang(Sel(xRow + 1, "A"), Sel(xRow + VInSertNum - 1, "AN")).Pilih
'Sel(xRow, 14).Nilai = 0
'ini melakukan semua baris
Seleksi.Sisipkan Shift:=xlDown
' Sel(xRow, 14).Nilai = 0 ini hanya untuk baris pertama
xRow = xRow + VInSertNum - 1
'Sel(xRow - 1, 14).Nilai = 0
End If
' Sel(xRow - 1, 14).Nilai = 0
xBaris = xBaris + 1
' Sel(xRow + 1, 14).Nilai = 0
Lingkaran
'Sel(xRow, 14).Nilai = 0 ini tidak memiliki baris
Application.ScreenUpdating = Salah
End Sub
Komentar ini diminimalkan oleh moderator di situs
Hai Steve, apakah Anda dapat melakukan ini. kebutuhan saya sama :(
Komentar ini diminimalkan oleh moderator di situs
Hallo teman-teman,
Mungkin artikel di bawah ini bisa membantu Anda, silakan cek:
https://www.extendoffice.com/documents/excel/3682-excel-copy-and-insert-row-multiple-times.html
Komentar ini diminimalkan oleh moderator di situs
Apakah Anda tahu kode apa yang akan menduplikasi baris hanya sekali, berdasarkan jika katakan sel d berisi 'Ya' - Saya telah mengejar kode serupa tetapi untuk sesuatu yang akan menduplikasi baris berdasarkan sel yang mengatakan ya
Komentar ini diminimalkan oleh moderator di situs
Jadi saya menggunakan kode ini tetapi saya ingin mencari seluruh dokumen bukan hanya baris 1 atau apa pun yang ditunjukkan oleh xRow = 1. Saya mencoba memasukkan rentang 1:2000 tetapi tidak berfungsi. Bagaimana saya bisa mengidentifikasi xRow = setiap baris pada lembar yang menyertakan informasi yang saya identifikasi dalam kode di bawah ini?


Redupkan xRow Selamanya
Nilai Redup Sebagai Varian


xBaris = 1: 2000

Application.ScreenUpdating = Salah
Lakukan Sementara (Sel(xRow, "A") <> "")
Nilai = Sel(xRow, "D")
Nilai2 = Sel(xRow, "A")
Jika Tidak ((Nilai = "allegheny general") Dan IsNumeric(Nilai2 = G0202)) Kemudian
Rentang(Sel(xRow, "A"), Sel(xRow, "D")).Copy
Rentang(Sel(xRow + 1, "A"), Sel(xRow + 1, "D")).Pilih
Seleksi.Sisipkan Shift:=xlDown
xBaris = xBaris + 1
End If
xBaris = xBaris + 1
Lingkaran
Application.ScreenUpdating = Salah
End Sub
Komentar ini diminimalkan oleh moderator di situs
Halo, ini bekerja dengan baik. Namun, saya memiliki laporan dengan 1000 entri dan kode berhenti menggandakan sekitar entri 480. Apakah ada sesuatu yang dapat saya tambahkan sehingga menyelesaikan tindakan pada seluruh laporan?
Komentar ini diminimalkan oleh moderator di situs
Halo, Lea,
Saya telah menguji kode dalam 2000 baris, dan berfungsi dengan baik.
Bisakah Anda mengirim lembar kerja Anda kepada saya untuk menguji kode?
Alamat email saya adalah skyyang@extendoffice.com
Nantikan balasan Anda!
Komentar ini diminimalkan oleh moderator di situs
Halo! Saya berhasil. Itu adalah kesalahan di pihak saya, laporan memiliki beberapa baris kosong yang disembunyikan yang menyebabkan skrip berhenti berulang. Ini berhasil untuk laporan saya dengan 8,000 baris! terima kasihQ
Komentar ini diminimalkan oleh moderator di situs
Halo Leah dan Skyyang,
Saya mengalami masalah serupa - skrip berfungsi dengan baik di lembar kerja sekitar 100 baris tetapi berhenti berfungsi untuk sesuatu yang lebih besar. Saya telah memeriksa baris kosong di kolom tempat nomor perkalian berasal dan tidak ada. Adakah alasan lain mengapa skrip mungkin tidak berfungsi untuk kumpulan data yang lebih besar?
Komentar ini diminimalkan oleh moderator di situs
Terima kasih! itu telah menjadi solusi yang bagus untuk semua masalah saya!
Komentar ini diminimalkan oleh moderator di situs
Skrip ini tampaknya persis seperti yang saya butuhkan, namun, ketika saya menjalankannya, saya mendapatkan kesalahan pada baris Selection.Insert Shift:=x1Down

Adakah saran tentang bagaimana saya memperbaikinya?
Komentar ini diminimalkan oleh moderator di situs
hai, bagi saya tidak berfungsi, saya ingin menghapus huruf dan nomor duplikat mungkin?
Komentar ini diminimalkan oleh moderator di situs
Apakah ada cara untuk memperbarui modul agar hanya menduplikasi data baru? Saya sedang mengerjakan dokumen yang sedang berjalan dan tidak ingin kode menduplikasi data yang telah diduplikasi sebelumnya.
Komentar ini diminimalkan oleh moderator di situs
adakah cara kita dapat menambahkan ke setiap sel yang berulang, sebuah karakter yang berurutan? contoh
KTE+0001

KTE+0002
Komentar ini diminimalkan oleh moderator di situs
Menyenangkan! Terima kasih. Saya ingin tahu apakah ada yang bisa memberikan petunjuk tentang bagaimana saya akan memasukkan kolom informasi baru ke dalam tabel (kolom E) yaitu sejumlah nilai yang bertambah untuk setiap baris yang disalin, 1, 2, 3, 4 dll ... ketika sampai ke item berikutnya untuk digandakan X kali, itu akan mulai bernomor lagi dari 1 dan bertambah 1 setiap kali.
Komentar ini diminimalkan oleh moderator di situs
Hai Saya telah mencoba ini tetapi apakah ada cara untuk mempertimbangkan jika ada beberapa kriteria dengan data yang saya duplikasi
Komentar ini diminimalkan oleh moderator di situs
Hai,

saya membuat spreadsheet menggunakan rumus yang disediakan tetapi saya mengalami kesalahan. tolong bisakah seseorang memberi tahu saya apa rumus saya seharusnya?

meja saya dari AY dengan kuantitas dalam K.
Komentar ini diminimalkan oleh moderator di situs
halo, saya telah mencoba menyesuaikan kode ini tetapi mengalami kesulitan.
saya memiliki barang inventaris. setiap item adalah dua baris. dan ingin mereka digandakan N jumlah waktu
di bagian atas spreadsheet, saya memiliki sel sebut saja A1, saya punya berapa kali digandakan? N
berapapun nilai N, saya ingin menduplikasi barang inventaris awal yang saya miliki (A16, A17) sebanyak itu.
jadi item yang disalin harus dimulai di A18 (dan itu dua baris, item berikutnya a20 dll.
Terima kasih
Komentar ini diminimalkan oleh moderator di situs
Hai, kodenya berfungsi dengan baik. Saya juga ingin menambahkan +1 ke tanggal (hanya hari kerja) setiap kali baris diduplikasi.
Komentar ini diminimalkan oleh moderator di situs
Terima kasih banyak! Ini telah menghemat banyak waktu saya sehingga saya biasanya membuang-buang waktu menyalin dan menempelkan semua baris data saya.
Dua jempol!!
Komentar ini diminimalkan oleh moderator di situs
Sepotong kode yang bagus!!! Terima kasih!!!
Belum ada komentar yang diposting di sini
Muat Lebih
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan