Hỗ trợ code VBA để copy dữ liệu từ file Excell qua 1 file excell khác

Liên hệ QC

dothetai

Thành viên mới
Tham gia
25/5/21
Bài viết
14
Được thích
2
Chào mọi người.Tình hình là mình có 2 file excel này.Mong mọi người giúp mình code VBA để copy dữ liệu từ file data sang file tong hop.Trong đó file tong hop dữ liệu được điền bắt đầu từ ô A12.Cảm ơn mọi người rất nhiều.
 

File đính kèm

  • tong hop.xlsx
    69.7 KB · Đọc: 12
  • data.xlsm
    43 KB · Đọc: 8
Chào mọi người.Tình hình là mình có 2 file excel này.Mong mọi người giúp mình code VBA để copy dữ liệu từ file data sang file tong hop.Trong đó file tong hop dữ liệu được điền bắt đầu từ ô A12.Cảm ơn mọi người rất nhiều.
Mình thấy bạn này bài trước có mấy bạn hỏi để giúp mà không thấy phản hồi, không biết bài này tình hình thế nào đây.
 
Upvote 0
Chào mọi người.Tình hình là mình có 2 file excel này.Mong mọi người giúp mình code VBA để copy dữ liệu từ file data sang file tong hop.Trong đó file tong hop dữ liệu được điền bắt đầu từ ô A12.Cảm ơn mọi người rất nhiều.
Chẳng biết sheet nào của data.xlsm cần copy, và sẽ copy sang sheet nào của tong hop.xlsx? Tiêu đề 2 bên cũng không tương đồng.
 
Upvote 0
Mình vừa xem bài của bạn xong, nhưng bài này ngoài khả năng của mình mất rồi, bạn chịu khó chờ bạn khác vậy.
Không sao.Cảm ơn bạn nhé
Bài đã được tự động gộp:

Chẳng biết sheet nào của data.xlsm cần copy, và sẽ copy sang sheet nào của tong hop.xlsx? Tiêu đề 2 bên cũng không tương đồng.
Chào bạn.Mình muốn copy toàn bộ các sheet của data qua các sheet của tong hop.Bạn copy thử dữ liệu từ data vào ô A12 của sheet bất kì bên tong hop sẽ thấy sự tương đồng ạ
 
Upvote 0
Không sao.Cảm ơn bạn nhé
Bài đã được tự động gộp:


Chào bạn.Mình muốn copy toàn bộ các sheet của data qua các sheet của tong hop.Bạn copy thử dữ liệu từ data vào ô A12 của sheet bất kì bên tong hop sẽ thấy sự tương đồng ạ
Một bên 5 cột thế này (không tính cột Graphic)
1623678514044.png
còn một bên 6 cột thế này
1623678551424.png
thì tương đồng thế nào?
 
Upvote 0
Upvote 0
Upvote 0
Sorry bạn.Mình có update lại file data rồi.mình có thêm 1 cột giữa D và E để tương đồng với tong hop.Bạn thông cảm giúp mình
Tôi thì vẫn thấy tên tiêu đề tréo hèo 2 chỗ nên bạn xác nhận dùm cái, sau này không đổi ý nữa nghe!
 
Upvote 0
Tôi thì vẫn thấy tên tiêu đề tréo hèo 2 chỗ nên bạn xác nhận dùm cái, sau này không đổi ý nữa nghe!

Tôi thì vẫn thấy tên tiêu đề tréo hèo 2 chỗ nên bạn xác nhận dùm cái, sau này không đổi ý nữa nghe!
Không đổi nữa đâu bạn.ý mình là bạn đừng quan tâm tên tiêu đề.mình chỉ cần copy dữ liệu từ data sang tonghop được thôi bạn
Bài đã được tự động gộp:

Tự dịch tiếng Anh ra thì biết chỡ tương đồng.
Rất tiếc cái tự điển của tôi nó hiểu cái "Material" trong file 1 thành "Profile" cho nên chịu thua.
Bạn đừng quan tâm tiêu đề.mình chỉ cần copy dữ liệu bên data sang tổng hợp là được thôi bạn
 
Upvote 0
Không đổi nữa đâu bạn.ý mình là bạn đừng quan tâm tên tiêu đề.mình chỉ cần copy dữ liệu từ data sang tonghop được thôi bạn
Bài đã được tự động gộp:


Bạn đừng quan tâm tiêu đề.mình chỉ cần copy dữ liệu bên data sang tổng hợp là được thôi bạn
Bấm nút Copy để chạy. Khi áp dụng trong file của bạn nhớ co các hình ở cột G cho vừa chiều rộng cột. Nếu không thì sẽ không copy hình sang tonghop được.
 

File đính kèm

  • data_CopyAllSheet_dothetai.xlsm
    52 KB · Đọc: 35
Upvote 0
Bấm nút Copy để chạy. Khi áp dụng trong file của bạn nhớ co các hình ở cột G cho vừa chiều rộng cột. Nếu không thì sẽ không copy hình sang tonghop được.
Bạn ơi cho mình hỏi thêm xíu với:
Mình không hiểu lắm 3 dòng này:
- arrCol = Array(1, 2, 3, 4, 5, 6)
- WbD.Sheets(CStr(k)).Range("A12").Resize(UBound(arrS, 1), UBound(arrS, 2)) = arrS
- Sh.Range("G2:G" & endR).Copy WbD.Sheets(CStr(k)).Range("G12") '.Resize(UBound(arrS, 1), 1)
3 dòng này là ý nghĩa là gì thế bạn? Tks bạn nhiều nhé
 
Upvote 0
Bạn ơi cho mình hỏi thêm xíu với:
Mình không hiểu lắm 3 dòng này:
- arrCol = Array(1, 2, 3, 4, 5, 6)
- WbD.Sheets(CStr(k)).Range("A12").Resize(UBound(arrS, 1), UBound(arrS, 2)) = arrS
- Sh.Range("G2:G" & endR).Copy WbD.Sheets(CStr(k)).Range("G12") '.Resize(UBound(arrS, 1), 1)
3 dòng này là ý nghĩa là gì thế bạn? Tks bạn nhiều nhé
1/ arrCol = Array(1, 2, 3, 4, 5, 6) là dòng thừa từ code cũ phía trên, tôi quên xóa. Trước đây, nếu các cột nguồn và đích không cùng trật từ thì phải dùng thủ thuật arrCol = Array(1,2,4,3,6,5) chẳng hạn để chép từng cột từ sheet nguồn theo cách không trật tự qua sheet đích đúng trật tự 1 - 6 (đó là mục đích của đoạn sub CopyData). Sau, khi biết cùng trật tự thì mọi việc đơn giản => như 2/
2/ Ở đây nguồn và đích cùng trật tự thì tại ô A12 của sheet tên là k (chạy từ 1 - 4) của Book đích (WbD.Sheets(CStr(k)).Range("A12") điều chỉnh kích thước cho bằng mảng nguồn arrS lấy ở bên trên (Resize(UBound(arrS, 1), UBound(arrS, 2))) gán giá trị = mảng nguồn arrS.
3/ Sh.Range("G2:G" & endR).Copy là copy cột G ở sheet nguồn (tới từ dòng 2 tới dòng cuối động endR) vào vị trí ô G12 của sheet tên k của Wbook đích (WbD.Sheets(CStr(k)).Range("G12")) - đoạn sau dấu nháy đơn là điều chỉnh kích thước bằng với nguồn nếu thấy muốn tường minh kích thước, còn không thì thôi, chỉ cần chỉ đến G12 là được

P/S: Quên: Bạn chép thêm 2 dòng này vào đầu code
Application.ScreenUpdating = False
Application.Calculation=xlCalculationManual

và 2 dòng này vào cuối code:
Application.ScreenUpdating = True
Application.Calculation=xlCalculationAutomatic

để chạy nhanh hơn khi có nhiều dữ liệu phải copy
 
Lần chỉnh sửa cuối:
Upvote 0
1/ arrCol = Array(1, 2, 3, 4, 5, 6) là dòng thừa từ code cũ phía trên, tôi quên xóa. Trước đây, nếu các cột nguồn và đích không cùng trật từ thì phải dùng thủ thuật arrCol = Array(1,2,4,3,6,5) chẳng hạn để chép từng cột từ sheet nguồn theo cách không trật tự qua sheet đích đúng trật tự 1 - 6 (đó là mục đích của đoạn sub CopyData). Sau, khi biết cùng trật tự thì mọi việc đơn giản => như 2/
2/ Ở đây nguồn và đích cùng trật tự thì tại ô A12 của sheet tên là k (chạy từ 1 - 4) của Book đích (WbD.Sheets(CStr(k)).Range("A12") điều chỉnh kích thước cho bằng mảng nguồn arrS lấy ở bên trên (Resize(UBound(arrS, 1), UBound(arrS, 2))) gán giá trị = mảng nguồn arrS.
3/ Sh.Range("G2:G" & endR).Copy là copy cột G ở sheet nguồn (tới từ dòng 2 tới dòng cuối động endR) vào vị trí ô G12 của sheet tên k của Wbook đích (WbD.Sheets(CStr(k)).Range("G12")) - đoạn sau dấu nháy đơn là điều chỉnh kích thước bằng với nguồn nếu thấy muốn tường minh kích thước, còn không thì thôi, chỉ cần chỉ đến G12 là được

P/S: Quên: Bạn chép thêm 2 dòng này vào đầu code
Application.ScreenUpdating = False
Application.Calculation=xlCalculationManual

và 2 dòng này vào cuối code:
Application.ScreenUpdating = True
Application.Calculation=xlCalculationAutomatic

để chạy nhanh hơn khi có nhiều dữ liệu phải copy
Ak.mình hiểu rồi.cảm ơn bạn nhiều lắm.tại mình mới học vba nên chỉ viết được mấy code đơn giản thôi
 
Upvote 0
Web KT

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

Back
Top Bottom