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

Làm cách nào để sao chép các hàng dựa trên giá trị ô trong một cột?

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

doc trùng lặp các hàng theo ô 1

Sao chép các hàng nhiều lần dựa trên các giá trị ô có mã VBA


mũi tên màu xanh bong bóng bên phải Sao chép các hàng nhiều lần dựa trên các giá trị ô có mã VBA

Để sao chép và nhân bản toàn bộ các hàng nhiều lần dựa trên các giá trị ô, 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ô-đunvà dán mã sau vào Mô-đun Cửa sổ.

Mã VBA: Sao chép các hàng nhiều lần dựa trên giá trị ô:

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. 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 cho biết cột bắt đầu của phạm vi dữ liệu của bạn và ký tự D là ký tự cột mà bạn muốn sao chép các hàng dựa trên. Vui lòng thay đổi chúng theo nhu cầu của bạn.


Các công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
officetab dưới cùng
Nhận xét (41)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này đã hoạt động hoàn hảo. Tôi sẽ thêm gì vào mã của bạn để làm cho bất kỳ dòng nào có '0' biến mất? Chúng tôi đang sử dụng điều này cho các nhãn SKU. Cảm ơn vì giải pháp tuyệt vời!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi yêu bạn. Cảm ơn bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn! dòng 10 và 11 "D" cho biết phần cuối của hàng và điều này có thể cần được thay đổi thành phạm vi dữ liệu của bạn để làm cho nó hoạt động.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
Ai đó biết nóng chuyển đổi mã VBA này sang tập lệnh Google Apps (google trang tính)?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đã sử dụng mã ở trên hoạt động tốt nhưng tôi cần thêm một bước sau khi hàng được dán. Tôi chỉ không thể làm cho nó hoạt động bình thường. Tôi cần nó để đặt số XNUMX trong cột "N" trong hàng sau khi nó được dán nhưng giữ nguyên giá trị "N" trong hàng được sao chép ban đầu.


Sub CopyData ()
'Cập nhật bởi Extendoffice 20160922
Dim xRow As Long
Dim VInSertNum làm biến thể
xHàng = 1
Application.ScreenUpdating = Sai
Thực hiện trong khi (Ô (xRow, "A") <> "")
VInSertNum = Ô (xRow, "J")
If ((VInSertNum> 1) And IsNumeric (VInSertNum)) Thì
Phạm vi (Ô (xRow, "A"), Ô (xRow, "AN")). Sao chép
'Cells (xRow, 14) .Value = 0 điều này đã làm tất cả các hàng
Phạm vi (Ô (xRow + 1, "A"), Ô (xRow + VInSertNum - 1, "AN")). Chọn
'Ô (xRow, 14) .Value = 0
'điều này đã làm tất cả các hàng
Selection.Insert Shift: = xlDown
'Cells (xRow, 14) .Value = 0 điều này chỉ làm hàng đầu tiên
xRow = xRow + VInSertNum - 1
'Ô (xRow - 1, 14) .Value = 0
Cuối Nếu
'Ô (xRow - 1, 14) .Value = 0
xRow = xRow + 1
'Ô (xRow + 1, 14) .Value = 0
Vòng lặp
'Cells (xRow, 14) .Value = 0 điều này không có hàng
Application.ScreenUpdating = Sai
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Steve, bạn đã có thể làm điều này. yêu cầu của tôi cũng giống như vậy :(
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, các bạn,
Có thể bài viết dưới đây có thể giúp ích cho bạn, hãy cùng tham khảo nhé:
https://www.extendoffice.com/documents/excel/3682-excel-copy-and-insert-row-multiple-times.html
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn có biết mã sẽ như thế nào để sao chép hàng chỉ một lần, dựa trên nếu giả sử ô d chứa 'Có' - Tôi đã theo đuổi mã tương tự nhưng đối với một thứ gì đó sẽ sao chép một hàng dựa trên một ô nói có
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Vì vậy, tôi đang sử dụng mã này nhưng tôi muốn nó tìm kiếm toàn bộ tài liệu không chỉ hàng 1 hoặc bất cứ thứ gì được chỉ ra bởi xRow = 1. Tôi đang cố gắng đặt trong phạm vi 1: 2000 nhưng nó không hoạt động. Làm cách nào để xác định xRow = bất kỳ hàng nào trên trang tính bao gồm thông tin tôi xác định trong mã bên dưới?


Dim xRow As Long
Giá trị mờ dưới dạng biến thể


xRow = 1:2000

Application.ScreenUpdating = Sai
Thực hiện trong khi (Ô (xRow, "A") <> "")
Giá trị = Ô (xRow, "D")
Value2 = Ô (xRow, "A")
If Not ((Value = "allegheny general") Và IsNumeric (Value2 = G0202)) Thì
Phạm vi (Ô (xRow, "A"), Ô (xRow, "D")). Sao chép
Phạm vi (Ô (xRow + 1, "A"), Ô (xRow + 1, "D")). Chọn
Selection.Insert Shift: = xlDown
xRow = xRow + 1
Cuối Nếu
xRow = xRow + 1
Vòng lặp
Application.ScreenUpdating = Sai
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, điều này làm việc tốt. Tuy nhiên, tôi có một báo cáo với 1000 mục nhập và mã đã ngừng sao chép xung quanh mục nhập 480. Có điều gì mà tôi có thể thêm để nó hoàn thành hành động trên toàn bộ báo cáo không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Leah,
Tôi đã thử nghiệm mã trong 2000 hàng và nó hoạt động tốt.
Bạn có thể gửi bảng tính của mình cho tôi để kiểm tra mã không?
Địa chỉ email của tôi là skyyang @extendofficenăm
Mong nhận được câu trả lời của bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào! Tôi đã nhận nó để làm việc. Đó là lỗi bên mình, báo cáo có một vài hàng trống bị ẩn khiến script ngừng lặp lại. Nó hoạt động cho báo cáo của tôi với 8,000 hàng! Cảm ơn bạnQ
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Leah và Skyyang,
Tôi đang gặp sự cố tương tự - tập lệnh hoạt động tốt trong một trang tính có khoảng 100 hàng nhưng nó ngừng hoạt động đối với bất kỳ thứ gì lớn hơn. Tôi đã kiểm tra các hàng trống trong cột mà số nhân đến và không có hàng nào. Bất kỳ lý do nào khác khiến tập lệnh có thể không hoạt động đối với các tập dữ liệu lớn hơn?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Thanks! nó đã là một giải pháp tuyệt vời cho tất cả những rắc rối của tôi!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tập lệnh này có vẻ là chính xác những gì tôi cần, tuy nhiên, khi tôi chạy nó, tôi gặp lỗi trên dòng Lựa chọn. Chèn Shift: = x1Down

Bất kỳ đề xuất nào về cách tôi sửa lỗi này?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
xin chào, đối với tôi là không hoạt động, tôi muốn loại bỏ các chữ cái và số trùng lặp có được không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có cách nào để cập nhật mô-đun để chỉ nhân bản dữ liệu mới không? Tôi đang làm việc trên một tài liệu đang diễn ra và không muốn mã trùng lặp với dữ liệu đã được sao chép trước đó.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
có cách nào chúng ta có thể thêm vào ô lặp lại eache, một ký tự kép liên tiếp không? ví dụ
KTE + 0001

KTE + 0002
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đẹp! Cảm ơn bạn. Tôi tự hỏi liệu có ai có thể đưa ra gợi ý về cách tôi sẽ kết hợp một cột thông tin mới vào bảng (cột E) là một số giá trị tăng dần cho mỗi hàng được sao chép, 1, 2, 3, 4, v.v. và sau đó khi nó đến mục tiếp theo để được nhân đôi X lần, nó sẽ bắt đầu đánh số lại từ 1 và tăng thêm 1 mỗi lần.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi đã thử điều này nhưng có cách nào để xem xét nếu có nhiều tiêu chí với dữ liệu tôi đang sao chép
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

tôi đang tạo bảng tính bằng công thức được cung cấp nhưng tôi đang gặp lỗi. làm ơn ai đó có thể cho tôi biết công thức của tôi nên là gì không?

bảng của tôi là từ AY với các đại lượng trong K.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
xin chào, tôi đã cố gắng điều chỉnh mã này nhưng gặp khó khăn.
tôi có các mặt hàng tồn kho. mỗi mục là hai hàng. và muốn chúng được sao chép N số thời gian
ở đầu bảng tính, tôi có một ô cho phép gọi nó là A1, tôi có bao nhiêu lần được nhân đôi? N
bất kể giá trị N là gì, tôi muốn nhân bản mục hàng tồn kho ban đầu mà tôi có (A16, A17) nhiều lần.
vì vậy mục được sao chép phải bắt đầu bằng A18 (và đó là hai hàng, mục tiếp theo a20, v.v.
Cảm ơn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, mã hoạt động tốt. Tôi cũng muốn thêm +1 vào ngày (chỉ các ngày trong tuần) mỗi khi hàng này bị trùng lặp.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn rất nhiều! Điều này đã giúp tôi tiết kiệm rất nhiều thời gian mà tôi đã từng lãng phí khi sao chép và dán tất cả các hàng dữ liệu của mình.
Hai ngón tay cái lên !!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đoạn mã tuyệt vời !!! Cảm ơn bạn!!!
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL