Lưu dữ liệu từ workbook này sang 1 workbook mới theo layout định trước (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

pretty_girl2703

Thành viên mới
Tham gia
21/5/13
Bài viết
4
Được thích
0
[THẮC MẮC VBA]Lưu dữ liệu từ workbook này sang 1 workbook mới theo layout định trước

Xin chào mọi người ạ. Em là thành viên mới học về VBA xin được giúp đỡ.Hiện tại, em đang muốn viết code VBA excel với nội dung như sau:

Em muốn lấy dữ liệu từ file "Incoming Inspection Result Report" sao chép sang file "Report" theo như layout của file "Report". Em cũng đã viết thử nhưng không chạy được.
Trong file "Report" có cột "Kiểm tra kích thước" (A,B,C,D,E,F,G,H,I,J,K,L,M,N) thì được nhập số liệu như vùng bôi màu xanh da trời. Cứ mỗi lần QC nhập kích thước được đo theo chuẩn, và số lần đo tùy thuộc vào số lượng sản xuất từ nhà cung cấp (Ví dụ ở đây, sản xuất ra 200 con hàng,mức độ kiểm tra là giảm nhẹ (GN) thì chỉ cần kiểm tra đo kích thước 3 lần). Em mong muốn,có 1 nút bấm mà sau khi nhập hết 3 lần đo, dữ liệu sẽ tự động lưu dữ liệu từ file "Incoming Inspection Result Report" sang "Report", sau đó dữ liệu cũ sẽ được xóa và QC sẽ nhập mã hàng khác với số lượng khác,và sau khi xong thì sẽ tiếp tục lưu dữ liệu mới vừa nhập vào file "Report" ở những dòng tiếp theo.
Dưới đây là 2 file em đề cập đến ạ.
Rất mong các anh chị giúp đỡ em.Em ngồi mò viết cả mấy bữa nay mà không ra.

Em xin chân thành cám ơn ạ.
 

File đính kèm

Lần chỉnh sửa cuối:
Xin chào mọi người ạ. Em là thành viên mới học về VBA xin được giúp đỡ.Hiện tại, em đang muốn viết code VBA excel với nội dung như sau:

Em muốn lấy dữ liệu từ file "Incoming Inspection Result Report" sao chép sang file "Report" theo như layout của file "Report". Em cũng đã viết thử nhưng không chạy được.
Trong file "Report" có cột "Kiểm tra kích thước" (A,B,C,D,E,F,G,H,I,J,K,L,M,N) thì được nhập số liệu như vùng bôi màu xanh da trời. Cứ mỗi lần QC nhập kích thước được đo theo chuẩn, và số lần đo tùy thuộc vào số lượng sản xuất từ nhà cung cấp (Ví dụ ở đây, sản xuất ra 200 con hàng,mức độ kiểm tra là giảm nhẹ (GN) thì chỉ cần kiểm tra đo kích thước 3 lần). Em mong muốn,có 1 nút bấm mà sau khi nhập hết 3 lần đo, dữ liệu sẽ tự động lưu dữ liệu từ file "Incoming Inspection Result Report" sang "Report", sau đó dữ liệu cũ sẽ được xóa và QC sẽ nhập mã hàng khác với số lượng khác,và sau khi xong thì sẽ tiếp tục lưu dữ liệu mới vừa nhập vào file "Report" ở những dòng tiếp theo.
Dưới đây là 2 file em đề cập đến ạ.
Rất mong các anh chị giúp đỡ em.Em ngồi mò viết cả mấy bữa nay mà không ra.
Em xin chân thành cám ơn ạ.
Vài góp ý:
+ Bạn viết tắt quá(Chỗ màu xanh), diễn đạt chưa rõ ràng(chỗ màu đỏ).
+ Bạn nên nhập 1, 2 kết quả mong muốn vào File đính để các thành viên còn test code nữa chứ!
Nói chung các thành viên trên GPE này chắc ít người có cùng chuyên môn với bạn chính vì vậy bạn mô tả càng rõ ràng thì càng có lợi cho bạn! Thân!
 
Vài góp ý:
+ Bạn viết tắt quá(Chỗ màu xanh)
QC = Quality Control. Ở đây nghĩa là nhân viên kiểm tra chất lượng (kiểm tra chất lượng các linh kiện điện, chắc là thế|||||).

diễn đạt chưa rõ ràng(chỗ màu đỏ)
Nghĩa là bên Report - "sheet1" có mục nào thì sẽ copy dữ liệu (giá trị) từ Incoming Inspection Result Report- sheet "Bao Cao Ket Qua" sang tương ứng.
 
QC = Quality Control. Ở đây nghĩa là nhân viên kiểm tra chất lượng (kiểm tra chất lượng các linh kiện điện, chắc là thế|||||).


Nghĩa là bên Report - "sheet1" có mục nào thì sẽ copy dữ liệu (giá trị) từ Incoming Inspection Result Report- sheet "Bao Cao Ket Qua" sang tương ứng.
Phục befaint quá! Có vẻ bạn rất hiểu ý tác giả! Hoặc có thể bạn cùng chuyên môn với tác giả!)(&&@@)(&&@@
 
Tôi tranh thủ làm cho bạn. Còn chỗ nào vướng thì bạn tự điều chỉnh nhé.
 

File đính kèm

Tôi tranh thủ làm cho bạn. Còn chỗ nào vướng thì bạn tự điều chỉnh nhé.

Dạ. Mình xin chân thành cám ơn "befaint" ạ. Hôm bữa giờ mình cũng ngồi mò và viết, chủ yếu dùng lệnh offset là chính nhưng gặp vấn đề lúc nhập hạng mục. File của bạn "befaint" đã giúp ích mình rất nhiều. Khi đọc đoạn code, có phần mình chưa hiểu nên mong được giải thích ạ. (Mình cũng search trên mạng để tìm hiểu nhưng vẫn chưa rõ lắm"

'Gan vao mang ttin():
ttin() = Array(mahang, ngay, dgiai, ncu, slg, mdkt, somau, sokt, ktnq, ghighu, ktdien, lrap, lrut, tgiay, lxoay, lkep, doben, khac)


n = ws1.Range("B" & Rows.Count).End(xlUp).Row
m = ws2.Range("S" & Rows.Count).End(xlUp).Row + 1
'Copy cac thong tin:
For i = 0 To UBound(ttin)
ws2.Range("A" & m).Offset(0, i) = ttin(i)
Next i
'Copy cac hang muc:
ws1.Range("B19:P" & n).Copy
ws2.Range("S" & m).PasteSpecial xlPasteValues

Tai sao tại ws2 mình lại cho Row+1
"Befaint" có thể giải thích dùm mình mấy dòng màu đỏ được không ạ?

Xin lỗi vì mình hỏi hơi nhiều, nhưng mình đang rất muốn học hỏi thêm.Cám ơn sự giúp đỡ nhiệt tình ạ. :-=
 
có thể giải thích dùm mình mấy dòng màu đỏ được không ạ?
n = ws1.Range("B" & Rows.Count).End(xlUp).Row 'Trả về vị trí dòng cuối cùng trong cột B (ws1) có chứa dữ liệu.
m = ws2.Range("S" & Rows.Count).End(xlUp).Row + 1 'Trả về vị trí dòng ngay phía dưới dòng cuối cùng trong cột S (ws2) có chứ dữ liệu.

'Copy cac thong tin:
For i = 0 To UBound(ttin) 'Vòng lặp từ chỉ số i=0 tới chỉ số trên của mảng ttin().
ws2.Range("A" & m).Offset(0, i) = ttin(i) 'Gán lần lượt các giá trị của mảng ttin() vào các ô thuộc dòng thứ m (ws2) từ cột 1 (cột A) tới cột thứ (UBound(ttin) + 1).
Next i

'Copy cac hang muc:
ws1.Range("B19:P" & n).Copy 'Copy vùng (B19:P" & n) của ws1
ws2.Range("S" & m).PasteSpecial xlPasteValues 'Dán giá trị đã copy vào ws2 tại vị trí ô Sm.

Đại khái là như thế..
 
Dạ chân thành cám ơn "befaint". Mình đã hiểu rõ ạ ^^
 
Web KT

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

Back
Top Bottom