Cookie giúp chúng tôi cung cấp dịch vụ của chúng tôi. Bằng cách sử dụng dịch vụ của chúng tôi, bạn đồng ý sử dụng cookie.
Mẹo: Các ngôn ngữ khác được Dịch bởi Google. Bạn có thể ghé thăm English phiên bản của liên kết này.
Đăng nhập
x
or
x
x
Ghi danh
x

or

Làm thế nào để nhân đôi các hàng dựa trên giá trị tế bào trong một cột?

Ví dụ: Tôi có một dãy dữ liệu có chứa một danh sách các số trong cột D và bây giờ, tôi muốn nhân đôi toàn bộ các hàng một vài lần dựa trên các giá trị số trong cột D để có kết quả sau. Làm thế nào tôi có thể sao chép các hàng nhiều lần dựa trên các giá trị di động trong Excel?

doc sao chép hàng theo ô 1

Nhân đôi hàng nhiều lần dựa trên giá trị của ô với mã VBA


mũi tên màu xanh bên phải Nhân đôi hàng nhiều lần dựa trên giá trị của ô với mã VBA

Để sao chép và nhân đôi toàn bộ các hàng nhiều lần dựa trên các giá trị của ô, mã VBA sau có thể giúp bạn, vui lòng thực hiện như sau:

1. Giữ ALT + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đun, và dán mã sau trong Mô-đun Cửa sổ.

Mã VBA: Nhân đôi hàng nhiều lần dựa trên giá trị di động:

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. Sau đó nhấn F5 để chạy mã này, toàn bộ các hàng đã được nhân đôi nhiều lần dựa trên giá trị ô trong cột D khi bạn cần.

chú thích: Trong đoạn mã trên, chữ cái A chỉ ra cột bắt đầu của dải dữ liệu của bạn và chữ cái D là cột chữ cái mà bạn muốn sao chép các hàng dựa trên. Xin vui lòng thay đổi chúng theo nhu cầu của bạn.



Các công cụ sản xuất được đề nghị

Tab Office

sao vàng1 Mang các tab tiện dụng vào Excel và các phần mềm Office khác, giống như Chrome, Firefox và Internet Explorer mới.

Kutools cho Excel

sao vàng1 Kinh ngạc! Tăng năng suất của bạn trong 5 phút. Không cần bất kỳ kỹ năng đặc biệt, tiết kiệm được hai giờ mỗi ngày!

sao vàng1 300 Các tính năng mới cho Excel, Làm cho Excel dễ dàng và mạnh mẽ:

  • Hợp nhất ô / Hàng / Cột mà không mất dữ liệu.
  • Kết hợp và Hợp nhất nhiều trang tính và Workbooks.
  • So sánh các dãy, sao chép nhiều dãy, chuyển đổi văn bản sang ngày, đơn vị và chuyển đổi tiền tệ.
  • Đếm theo màu sắc, Paging Subtotals, sắp xếp nâng cao và Super Filter,
  • Thêm / Chèn / Xóa / Văn bản / Định dạng / Liên kết / Nhận xét / Tập tin / Workheets Công cụ ...

Ảnh chụp màn hình của Kutools cho 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