Xin giúp cách copy range từ 1 sheet sang 1 sheet khác kèm số lần mỗi row được lặp lại

Liên hệ QC

tungds

Thành viên mới
Tham gia
15/5/13
Bài viết
33
Được thích
1
Giới tính
Nam
Chào các bác,
Em có 1 file excel trong đấy có 2 sheet : MRP daily detail và Model.
E mong muốn copy value 1 range từ sheet 'Model' sang sheet 'MRP' với số lần lặp lại của 1 row trong range đó.

Sau đó, nếu mỗi khi thêm 1 mã bên sheet Model thì bên sheet MRP sẽ tự thêm 3 dòng tiếp theo các dòng đã có.

Ví dụ:
Sheet 'Model' 1 range có value như sau:
100627IC_REG>S,STD,1CH,AZ1117D-2.5TRE1,1A,2.4=5/2.55V,15V,3P,TO252-2-3
100628IC_MICOM>S,8BIT/PIC,PIC12F615-I/SN,1KB,=64Byte,4CH,10BIT,5,X,X,2.0/5.5V,8P,SOIC-8

Sau đó ở sheet 'MRP sẽ có kết quả như sau với số lần lặp mỗi row là 3:
100627IC_REG>S,STD,1CH,AZ1117D-2.5TRE1,1A,2.4=5/2.55V,15V,3P,TO252-2-3
100627IC_REG>S,STD,1CH,AZ1117D-2.5TRE1,1A,2.4=5/2.55V,15V,3P,TO252-2-3
100627IC_REG>S,STD,1CH,AZ1117D-2.5TRE1,1A,2.4=5/2.55V,15V,3P,TO252-2-3
100628IC_MICOM>S,8BIT/PIC,PIC12F615-I/SN,1KB,=64Byte,4CH,10BIT,5,X,X,2.0/5.5V,8P,SOIC-8
100628IC_MICOM>S,8BIT/PIC,PIC12F615-I/SN,1KB,=64Byte,4CH,10BIT,5,X,X,2.0/5.5V,8P,SOIC-8
100628IC_MICOM>S,8BIT/PIC,PIC12F615-I/SN,1KB,=64Byte,4CH,10BIT,5,X,X,2.0/5.5V,8P,SOIC-8

Em xin cảm ơn!

Câu trả lời ở đây ạ:
Giải pháp
 

File đính kèm

  • test.xlsm
    1.5 MB · Đọc: 3
Lần chỉnh sửa cuối:
Mình copy rồi dán 3 phát liên tiếp, kế đó sort vùng theo cột mã là xong phim 3 con heo con.
 
Con số 3 (lần copy) mà bạn ví dụ đó do ai ấn định vậy?
 
do bên e mỗi 1 mã sinh ra thì có 3 đặc điểm cần phải điền thông tin vào -> mỗi mã bên sheet này lại có 3 row bên sheet kia
Tức là sheet Model có nhiều dòng, giờ muốn làm sao đưa qua sheet MRP mà mỗi dòng x3 lần lên đúng không?
 
do bên e mỗi 1 mã sinh ra thì có 3 đặc điểm cần phải điền thông tin vào -> mỗi mã bên sheet này lại có 3 row bên sheet kia
Bạn đưa file lên đi.
Sheet này có 1000 dòng thì sang sheet kia thành 3000 dòng?
Dùng VBA được không?
 
Tức là sheet Model có nhiều dòng, giờ muốn làm sao đưa qua sheet MRP mà mỗi dòng x3 lần lên đúng không?
đúng rồi bác, ngoài ra e còn muốn tự động khi thêm 1 mã ở bên sheet Model thì bên sheet MRP tự thêm 3 dòng có mã và tên như e mô tả ở trên
Bài đã được tự động gộp:

Bạn đưa file lên đi.
Sheet này có 1000 dòng thì sang sheet kia thành 3000 dòng?
Dùng VBA được không?
E đang thử mà k chuyên nên k rõ, mong bác giúp hộ, e có post file trên kia ,với có yêu cầu thêm chức năng khi thêm 1 row bên sheet Model thì bên sheet MRP cũng tự thêm 3 dòng vào các dòng đã có. Thank bác
 
Thì đã kêu là copy rồi dán 3 phát rồi sort là được liền. VBA thì record macro thao tác vậy, đảm bảo siêu tốc luôn.
 
Thì đã kêu là copy rồi dán 3 phát rồi sort là được liền. VBA thì record macro thao tác vậy, đảm bảo siêu tốc luôn.
Vâng cách copy ổn ạ, nhưng e có bị yêu cầu thêm là mỗi khi sheet Model thêm 1 row thì bên kia cũng tự thêm 3 row nữa. E có thử VBA mà k rõ về cách select range, copy, xong paste vào bên kia. Mong bác giúp, e có post file ở trên ạ
 
Trước khi chép cái mới thì xóa cái cũ đi là đạt.
Vâng, khá easy, nhưng e mong muốn tự động đoạn đó. Nếu dùng marco record theo e sẽ là:
- Step1: Xoá hết bên sheet MRP
- Step2: Thêm 1 dòng
- Step3: Paste 3 lần rồi sort.
Đúng k ạ?
 
Thì đã kêu là copy rồi dán 3 phát rồi sort là được liền. VBA thì record macro thao tác vậy, đảm bảo siêu tốc luôn.
Không siêu tốc bằng ngồi đợi người ta code giùm đâu.
Thấy trước mắt có 2-3 người đang làm. Giờ đến chiều có code đưa lên thôi.
Nếu chậm hơn là lỗi tại thớt nói chuyện không rõ ràng.
 
đúng rồi bác, ngoài ra e còn muốn tự động khi thêm 1 mã ở bên sheet Model thì bên sheet MRP tự thêm 3 dòng có mã và tên như e mô tả ở trên
Bài đã được tự động gộp:


E đang thử mà k chuyên nên k rõ, mong bác giúp hộ, e có post file trên kia ,với có yêu cầu thêm chức năng khi thêm 1 row bên sheet Model thì bên sheet MRP cũng tự thêm 3 dòng vào các dòng đã có. Thank bác
Đang giao tiếp với người Việt mà "k chuyên, k rõ, e đang, Thank bác, khá easy..." chẳng hiểu đâu là đâu.
 
Vâng, khá easy, nhưng e mong muốn tự động đoạn đó. Nếu dùng marco record theo e sẽ là:
- Step1: Xoá hết bên sheet MRP
- Step2: Thêm 1 dòng
- Step3: Paste 3 lần rồi sort.
Đúng k ạ?
Không thì làm công thức, giả sử bên Model bắt đầu từ A1 thì bên A1 MRP gõ công thức này rồi kéo xuống:
Mã:
=OFFSET(Model!$A$1,INT((ROW()-1)/3),)
 
Không thì làm công thức, giả sử bên Model bắt đầu từ A1 thì bên A1 MRP gõ công thức này rồi kéo xuống:
Mã:
=OFFSET(Model!$A$1,INT((ROW()-1)/3),)
Vậy nếu bên sheet Model em cần 1 range như ví dụ em đưa thì chỉ cần thay như này ạ :
Mã:
=OFFSET(Model!$A$1:$B$1,INT((ROW()-1)/3),)
 
Em sẽ rút kinh nghiệm ạ
Bạn chép Sub này vào Module rồi "chạy" thử xem sao.
PHP:
Option Explicit

Public Sub s_Gpe()
Dim sArr(), dArr(), i As Long, j As Long, k As Long, r As Long
    sArr = Sheets("Model").Range("B4", Sheets("Model").Range("B4").End(xlDown)).Resize(, 2).Value
    r = UBound(sArr)
ReDim dArr(1 To r * 3, 1 To 2)
For i = 1 To r
    For j = 1 To 3
        k = k + 1
        dArr(k, 1) = sArr(i, 1)
        dArr(k, 2) = sArr(i, 2)
    Next j
Next i
    Sheets("MRP daily detail").Range("A29").Resize(100000, 2).ClearContents
    Sheets("MRP daily detail").Range("A29").Resize(k, 2) = dArr
End Sub
 
Vậy nếu bên sheet Model e cần 1 range như ví dụ e đưa thì chỉ cần thay như này ạ :
Mã:
=OFFSET(Model!$A$1:$B$1,INT((ROW()-1)/3),)
Cái công thức kia là A1 thì sang cột B thay thành B1 thôi. hoặc không thì trong công thức offset chọn đối số cols=2
 
Web KT

Bài viết mới nhất

Back
Top Bottom