[Xin nhờ giúp đỡ] Cách đối chiếu dữ liệu giữa hai biểu

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

phanmoi688

Thành viên mới
Tham gia
20/3/24
Bài viết
20
Được thích
-6
- Em muốn dò dữ liệu nhập xuất giữa hai tổ (cột xuất của tổ bị liệu và cột nhập của tổ tạo hình) xem có chênh lệch hay không, ngoài việc dò số lượng nhập xuất của hai tổ em còn phải dò xem các trường: mã số công lệnh, mã hàng, kích thước, tên phụ kiện nữa (khi dò phải phát hiện được trong các trường trên có sai hoặc có thừa ký tự hay không, các trường này ở hai nhà cũng phải khớp nhau). Mong được mọi người giúp đỡ ạ.
 

File đính kèm

  • tổ bị liệu.XLSX
    38.6 KB · Đọc: 6
  • tổ tạo hình.XLSX
    37.4 KB · Đọc: 5
- Em muốn dò dữ liệu nhập xuất giữa hai tổ (cột xuất của tổ bị liệu và cột nhập của tổ tạo hình) xem có chênh lệch hay không, ngoài việc dò số lượng nhập xuất của hai tổ em còn phải dò xem các trường: mã số công lệnh, mã hàng, kích thước, tên phụ kiện nữa (khi dò phải phát hiện được trong các trường trên có sai hoặc có thừa ký tự hay không, các trường này ở hai nhà cũng phải khớp nhau). Mong được mọi người giúp đỡ ạ.
@phanmoi688
Làm bằng VBA được không?
Nếu tôi hiểu đúng và bạn cần thì có thể tham khảo file sau;
1/Mở file Tổ bị liệu.XLSX==> Copy thêm 1 Sheet giống với sheet (tên tiếng Tàu, hay nhật) và đăt tên sheet mới ấy là BiLieu=> Save==>Close.
2/Nhấn vào mặt cười để xem kết quả so sánh ở cột ghi chú.
Lưu ý thay đổi đường dẫn ở Ô L2 cho phù hợp
 

File đính kèm

  • tổ tạo hình.xlsm
    75.9 KB · Đọc: 6
em làm theo anh hướng dẫn mà nó bảo "Object variable or With block variable not set" là em làm sai chỗ nào ạ
Bài đã được tự động gộp:

@phanmoi688
Làm bằng VBA được không?
Nếu tôi hiểu đúng và bạn cần thì có thể tham khảo file sau;
1/Mở file Tổ bị liệu.XLSX==> Copy thêm 1 Sheet giống với sheet (tên tiếng Tàu, hay nhật) và đăt tên sheet mới ấy là BiLieu=> Save==>Close.
2/Nhấn vào mặt cười để xem kết quả so sánh ở cột ghi chú.
Lưu ý thay đổi đường dẫn ở Ô L2 cho phù hợp
với lại em xem chỗ code hình như nó bị lỗi font hay sao mà có mấy chữ bị lẫn tiếng trung vào nữa á
 
Lần chỉnh sửa cuối:
Bạn có biết VBA không?
Nếu có biết tí chút thì thử như sau:
Trên cửa sổ VBE bạn đưa chuột vào lề trái (như chỗ có mũi tên vàng và nháy chuột để nó xuất hiện ở chỗ đó 1 dấu tròn. Bạn nháy vào chỗ này Dic(key)=Arr(i,8) và dòng Set WsMoi = Workbook.Open.... và dòng If Sh.name ..... và dòng tiếp theo . sau đó thử nhấn F5 xem code chạy nó có dừng ở chỗ có các dấu tròn lề trái ấy không. Nếu nó dừng nhấn F8 (dòng tô vàng sẽ nhảy thêm 1 dòng), lại nhấn F5 và F8 ... (mục đích là Để xem Code có nạp dic không). Nếu nó không dừng chỗ dấu tròn ấy có nghĩa là code không nạp dic và như thế Dòng If Dic.Exists(Temp) chạy bị lỗi.
Hoặc có thể Temp xác định sai, Bạn thử kiểm tra xem Temp có giá trị là như thế nào?
 
Bạn có biết VBA không?
Nếu có biết tí chút thì thử như sau:
Trên cửa sổ VBE bạn đưa chuột vào lề trái (như chỗ có mũi tên vàng và nháy chuột để nó xuất hiện ở chỗ đó 1 dấu tròn. Bạn nháy vào chỗ này Dic(key)=Arr(i,8) và dòng Set WsMoi = Workbook.Open.... và dòng If Sh.name ..... và dòng tiếp theo . sau đó thử nhấn F5 xem code chạy nó có dừng ở chỗ có các dấu tròn lề trái ấy không. Nếu nó dừng nhấn F8 (dòng tô vàng sẽ nhảy thêm 1 dòng), lại nhấn F5 và F8 ... (mục đích là Để xem Code có nạp dic không). Nếu nó không dừng chỗ dấu tròn ấy có nghĩa là code không nạp dic và như thế Dòng If Dic.Exists(Temp) chạy bị lỗi.
Hoặc có thể Temp xác định sai, Bạn thử kiểm tra xem Temp có giá trị là như thế nào
e ko biết về VBA nma e sẽ thử làm theo anh hướng dẫn ạ
 
Bạn có biết VBA không?
Nếu có biết tí chút thì thử như sau:
Trên cửa sổ VBE bạn đưa chuột vào lề trái (như chỗ có mũi tên vàng và nháy chuột để nó xuất hiện ở chỗ đó 1 dấu tròn. Bạn nháy vào chỗ này Dic(key)=Arr(i,8) và dòng Set WsMoi = Workbook.Open.... và dòng If Sh.name ..... và dòng tiếp theo . sau đó thử nhấn F5 xem code chạy nó có dừng ở chỗ có các dấu tròn lề trái ấy không. Nếu nó dừng nhấn F8 (dòng tô vàng sẽ nhảy thêm 1 dòng), lại nhấn F5 và F8 ... (mục đích là Để xem Code có nạp dic không). Nếu nó không dừng chỗ dấu tròn ấy có nghĩa là code không nạp dic và như thế Dòng If Dic.Exists(Temp) chạy bị lỗi.
Hoặc có thể Temp xác định sai, Bạn thử kiểm tra xem Temp có giá trị là như thế nào?
em làm thử mà ko ddc ạ, a xem có cách nào giúp e ko
 
do thói quen của mình thôi
Đã có thành viên nhắc bạn là không nên viết tắt rồi và tác hại của nó ra sao rồi .
Chỉ chân thành khuyên bạn là : khi viết cho ai đó nhất là người đó bạn không biết họ là ai thì hãy nên viết bằng tiếng mẹ đẻ, câu văn trong sáng để thể hiện mình là người có văn hóa. Bạn hãy hình dung ra câu văn sau : t muốn thế này thế nọ, ... hoặc m có thể cho t cái gì đó... thì người khác có thể hiểu là (tao,(tôi hoặc tớ hoặc thầy muốn ....) , hoặc : mày hoặc mình, hoặc mi, hoặc mụ có thể cho (như chữ t ở trên đã viết)..... thử hỏi nếu người đọc là người có địa vị (chú bác-hoặc tuổi cao) cao hơn bạn họ nghĩ sao?
Thấy bạn viết tắt kinh quá có chữ nổ cả não mà không dịch được (nma e..., ...ddc...) nên chờn và có ý định bỏ qua. khi đến bài #12 bạn cũng đã có ý cầu thị và do vậy tôi gợi ý bạn sửa lại thế này:
Dòng code If File.Name Like "t? b? li?u.xlsm" đổi thành If File.Name Like "t? b? li?u.XLSX" và chạy thử. Có thể do file t? b? li?u.xlsm không có tren máy bạn nên code không tìm thấy và do vậy không nạp dictionary
nếu vẫn không được thì chụp ảnh màn hình dòng code bị lỗi và up lên.
 
Khi hỏi, đưa một vấn đề của mình ra cho người ta làm (giúp) thì đầu tiên hết phải cố gắng dùng văn từ cho thật rõ rệt, và tuân thủ luật của "thói thường".
Đâu lại cứ cắm đầu đi theo "thói quen".
 
Đã có thành viên nhắc bạn là không nên viết tắt rồi và tác hại của nó ra sao rồi .
Chỉ chân thành khuyên bạn là : khi viết cho ai đó nhất là người đó bạn không biết họ là ai thì hãy nên viết bằng tiếng mẹ đẻ, câu văn trong sáng để thể hiện mình là người có văn hóa. Bạn hãy hình dung ra câu văn sau : t muốn thế này thế nọ, ... hoặc m có thể cho t cái gì đó... thì người khác có thể hiểu là (tao,(tôi hoặc tớ hoặc thầy muốn ....) , hoặc : mày hoặc mình, hoặc mi, hoặc mụ có thể cho (như chữ t ở trên đã viết)..... thử hỏi nếu người đọc là người có địa vị (chú bác-hoặc tuổi cao) cao hơn bạn họ nghĩ sao?
Thấy bạn viết tắt kinh quá có chữ nổ cả não mà không dịch được (nma e..., ...ddc...) nên chờn và có ý định bỏ qua. khi đến bài #12 bạn cũng đã có ý cầu thị và do vậy tôi gợi ý bạn sửa lại thế này:
Dòng code If File.Name Like "t? b? li?u.xlsm" đổi thành If File.Name Like "t? b? li?u.XLSX" và chạy thử. Có thể do file t? b? li?u.xlsm không có tren máy bạn nên code không tìm thấy và do vậy không nạp dictionary
nếu vẫn không được thì chụp ảnh màn hình dòng code bị lỗi và up lên.
Dạ vâng em cảm ơn, em đã làm được rồi, vậy nếu em muốn dùng code này áp dụng cho các biểu của các tổ tương tự thì em phải làm như thế nào ạ.
 
Dạ vâng em cảm ơn, em đã làm được rồi, vậy nếu em muốn dùng code này áp dụng cho các biểu của các tổ tương tự thì em phải làm như thế nào ạ.
Có nhiều tổ không? và mỗi file ấy thì so sánh với cột nào của sheet nào?
Nếu nhiều thì liệt kê tên các tổ (ví dự : AA1=Tổ bị liệu.XLSX, AA2=Tổ tiết liệu.XLSX, AA3=Tổ hư thận,AA4=.... rồi dùng vòng lặp duyệt qua từng ô của cột AA để lấy tên file đưa vào code.
 
Có nhiều tổ không? và mỗi file ấy thì so sánh với cột nào của sheet nào?
Nếu nhiều thì liệt kê tên các tổ (ví dự : AA1=Tổ bị liệu.XLSX, AA2=Tổ tiết liệu.XLSX, AA3=Tổ hư thận,AA4=.... rồi dùng vòng lặp duyệt qua từng ô của cột AA để lấy tên file đưa vào code.
có 5 tổ và dữ liệu cần dò tìm của các tổ đều như nhau ạ
 
có 5 tổ và dữ liệu cần dò tìm của các tổ đều như nhau ạ
Bạn có thấy vế thứ 2 của câu hỏi không? nó là "...file ấy thì so sánh với cột nào của sheet nào?".
Lưu ý: hỏi bài mà để người khác phải hỏi lại thì sao? chắc bạn biết.
 
Bạn có thấy vế thứ 2 của câu hỏi không? nó là "...file ấy thì so sánh với cột nào của sheet nào?".
Lưu ý: hỏi bài mà để người khác phải hỏi lại thì sao? chắc bạn biết.
Vâng em xin lỗi vì đã không nói rõ ý, trường dữ liệu ở các tổ khác cũng tương tự với nhau, và cái em cần dò cũng là dữ liệu nhập xuất (mã số công lệnh, mã hàng, kích thước, tên phụ kiện) như hai tổ ban đầu ạ
 
Vâng em xin lỗi vì đã không nói rõ ý, trường dữ liệu ở các tổ khác cũng tương tự với nhau, và cái em cần dò cũng là dữ liệu nhập xuất (mã số công lệnh, mã hàng, kích thước, tên phụ kiện) như hai tổ ban đầu ạ
Nói thế có nghĩa là so sánh 1 cột nào đó của 5 file tạm gọi là % file nguồn) với 1 cột của 1 file (tạm gọi là file Đích) với điều kiện dữ liệu có (mã số công lệnh, mã hàng, kích thước, tên phụ kiện) như nhau được kết quả phản ánh vào 5 cột của sheet so sánh của file đích.
 
Web KT
Back
Top Bottom