Trợ giúp code vba .Copy dữ liệu từ file này sang file khác theo tiêu đề cột

Liên hệ QC

easport431991

Thành viên mới
Tham gia
20/12/21
Bài viết
6
Được thích
0
Hai file ở 2 thư mục khác nhau nhờ các bạn giúp mình code VBA: Copy dữ liệu từ sheet DATA ở file TONG HOP qua sheet SUB ở file DON HANG
Cảm ơn các bạn rất nhiều
 

File đính kèm

  • DON HANG.xlsx
    27.7 KB · Đọc: 17
  • TONG HOP.xlsx
    5.3 MB · Đọc: 24
Hai file ở 2 thư mục khác nhau nhờ các bạn giúp mình code VBA: Copy dữ liệu từ sheet DATA ở file TONG HOP qua sheet SUB ở file DON HANG
Cảm ơn các bạn rất nhiều
Thử xem . nhấn nút ở sh SUB để được kết quả.
file DON HANG và File TONGHOPđược để trong folder TONGHOPDONHANG.
Đưỡng dẫn của tôi có thể khác của ban. tải foder .zip giải nén và chạy thủ.
 

File đính kèm

  • TongHopDonHang.zip
    5.1 MB · Đọc: 50
Upvote 0
Làm thử 10 cột sao thấy chạy ẹ quá nên thôi
Sub cho nút Coppy
Mã:
Sub Coppy()
 Application.ScreenUpdating = False
 
 '1. Tao doi tuong muon lay du lieu
 Dim cn As Object
 Set cn = CreateObject("ADODB.connection")
 
 '2. Tui chua du lieu
 Dim rst As Object
 Set rst = CreateObject("ADODB.recordset")
 
 '3. Chi duong dan den file goc
 Dim address As String
 address = "C:\Users\Administrator\Downloads\TongHop.xlsx"
 
 '4.Mo ket noi
 cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & address & ";Extended Properties=""Excel 12.0 Xml;HDR=yes""")
 
 '5. Nhat du lieu vao tui
 rst.Open ( _
    "SELECT SEBANGO,[TANM A],[CAM A],[VI TRI A],[MS CONN A],[TANM B],[Cam b],[VI TRI B],[MS CONN B],[Size] " & _
    " From [Data$]" _
 ), cn
 
 '6. Xoa Du lieu cu
 Sheet1.Range("a3:zz1000").ClearContents
 
 '7. Chep ten cot
 Dim i As Integer
    For i = 1 To rst.Fields.Count
       Sheet1.Range("a3").Offset(0, i - 1).Value = rst.Fields(i - 1).Name
    Next
 
 '8. Gan Xuong sheet
 Sheet1.Range("a5").CopyFromRecordset rst
 
Application.ScreenUpdating = True

End Sub
 

File đính kèm

  • DonHang333.xlsm
    922.7 KB · Đọc: 29
Upvote 0
Thử xem . nhấn nút ở sh SUB để được kết quả.
file DON HANG và File TONGHOPđược để trong folder TONGHOPDONHANG.
Đưỡng dẫn của tôi có thể khác của ban. tải foder .zip giải nén và chạy thủ.
làm phiền bạn thêm tí xíu nữa nha, trường hợp mình không để 2 file chung thư mục thì mình gọi đường link như thế nào và tên file có thể khác nhau thì mình có cách nào nhận biết được không
'fnameList = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", Title:="Choose Excel files to merge", MultiSelect:=True)
'For Each file In fnameList ' quet tung file trong tap hop
 
Upvote 0
làm phiền bạn thêm tí xíu nữa nha, trường hợp mình không để 2 file chung thư mục thì mình gọi đường link như thế nào và tên file có thể khác nhau thì mình có cách nào nhận biết được không
'fnameList = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", Title:="Choose Excel files to merge", MultiSelect:=True)
'For Each file In fnameList ' quet tung file trong tap hop
Bạn đã làm đến chỗ này
'fnameList = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", Title:="Choose Excel files to merge", MultiSelect:=True)
thì excel sẽ mở một cửa sổ cho bạn chọn các file bằng cách bôi đen hay click chọn 1 hay nhiều file (nhấn ctrl để chọn nhiều file) . sau đó enter( OK)
Dòng lệnh 'For Each file In fnameList ' quet tung file trong tap hop
và set wb= this workbook( open file)
sẽ lần lượt mở từng file đã chọn trong tâp hợp fnamelist và xử lý theo code tiếp theo.
bạn tìm kiếm trên diễn đàn này có hàng đống những bài như yêu cầu của bạn và tự tìm hiểu thì sẽ nhớ lâu và thành thục thôi.
Chúc bạn thành công.
 
Upvote 1
Bạn đã làm đến chỗ này
'fnameList = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", Title:="Choose Excel files to merge", MultiSelect:=True)
thì excel sẽ mở một cửa sổ cho bạn chọn các file bằng cách bôi đen hay click chọn 1 hay nhiều file (nhấn ctrl để chọn nhiều file) . sau đó enter( OK)
Dòng lệnh 'For Each file In fnameList ' quet tung file trong tap hop
và set wb= this workbook( open file)
sẽ lần lượt mở từng file đã chọn trong tâp hợp fnamelist và xử lý theo code tiếp theo.
bạn tìm kiếm trên diễn đàn này có hàng đống những bài như yêu cầu của bạn và tự tìm hiểu thì sẽ nhớ lâu và thành thục thôi.
Chúc bạn thành công.
mình làm được rồi rất cảm ơn bạn đã giúp mình
 
Upvote 0
mình làm được rồi rất cảm ơn bạn đã giúp mình
Nếu sau này muốn thêm vài Sheet nữa thì hãy tìm loạt bài viết của Tôi tham khảo chơi nhé

Tùy chọn tổng hợp dữ liệu với file bất kỳ bao gồm ( Excel + Access + SQLite )
tùy chọn Sheet Or Table lấy gán dữ liệu nối tiếp xuống dòng ( Tổng hợp dữ liệu )

xem hình có 3 Sheet trong Một file lấy hết hoặc chỉ lấy 1 = Tùy chọn

1669007843059.png

Cách 2 kiểu như trên mà builder SQL

Xem hình

1669007983161.png
 
Upvote 0
Nếu sau này muốn thêm vài Sheet nữa thì hãy tìm loạt bài viết của Tôi tham khảo chơi nhé

Tùy chọn tổng hợp dữ liệu với file bất kỳ bao gồm ( Excel + Access + SQLite )
tùy chọn Sheet Or Table lấy gán dữ liệu nối tiếp xuống dòng ( Tổng hợp dữ liệu )

xem hình có 3 Sheet trong Một file lấy hết hoặc chỉ lấy 1 = Tùy chọn

View attachment 283662

Cách 2 kiểu như trên mà builder SQL

Xem hình

View attachment 283663
Anh có thể cho em xin link bài viết của anh được không ạ. :D
 
Upvote 0
Nếu sau này muốn thêm vài Sheet nữa thì hãy tìm loạt bài viết của Tôi tham khảo chơi nhé

Tùy chọn tổng hợp dữ liệu với file bất kỳ bao gồm ( Excel + Access + SQLite )
tùy chọn Sheet Or Table lấy gán dữ liệu nối tiếp xuống dòng ( Tổng hợp dữ liệu )

xem hình có 3 Sheet trong Một file lấy hết hoặc chỉ lấy 1 = Tùy chọn

View attachment 283662

Cách 2 kiểu như trên mà builder SQL

Xem hình

BàiView attachment 283663

Nếu sau này muốn thêm vài Sheet nữa thì hãy tìm loạt bài viết của Tôi tham khảo chơi nhé

Tùy chọn tổng hợp dữ liệu với file bất kỳ bao gồm ( Excel + Access + SQLite )
tùy chọn Sheet Or Table lấy gán dữ liệu nối tiếp xuống dòng ( Tổng hợp dữ liệu )

xem hình có 3 Sheet trong Một file lấy hết hoặc chỉ lấy 1 = Tùy chọn

View attachment 283662

Cách 2 kiểu như trên mà builder SQL

Xem hình

View attachment 283663
Cảm ơn bạn nha, cho mình xin đường dẫn tới bài viết được không, mình muốn tìm hiểu thêm
 
Upvote 0
Nếu sau này muốn thêm vài Sheet nữa thì hãy tìm loạt bài viết của Tôi tham khảo chơi nhé

Tùy chọn tổng hợp dữ liệu với file bất kỳ bao gồm ( Excel + Access + SQLite )
tùy chọn Sheet Or Table lấy gán dữ liệu nối tiếp xuống dòng ( Tổng hợp dữ liệu )

xem hình có 3 Sheet trong Một file lấy hết hoặc chỉ lấy 1 = Tùy chọn

View attachment 283662

Cách 2 kiểu như trên mà builder SQL

Xem hình

View attachment 283663
Xin anh hướng dẫn sử dụng, em tải về mở file excel: FireMySQLAPI, chọn Selectfiles báo lỗi Run-time error 53
Bài đã được tự động gộp:

Làm thử 10 cột sao thấy chạy ẹ quá nên thôi
Sub cho nút Coppy
Mã:
Sub Coppy()
 Application.ScreenUpdating = False
 
 '1. Tao doi tuong muon lay du lieu
 Dim cn As Object
 Set cn = CreateObject("ADODB.connection")
 
 '2. Tui chua du lieu
 Dim rst As Object
 Set rst = CreateObject("ADODB.recordset")
 
 '3. Chi duong dan den file goc
 Dim address As String
 address = "C:\Users\Administrator\Downloads\TongHop.xlsx"
 
 '4.Mo ket noi
 cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & address & ";Extended Properties=""Excel 12.0 Xml;HDR=yes""")
 
 '5. Nhat du lieu vao tui
 rst.Open ( _
    "SELECT SEBANGO,[TANM A],[CAM A],[VI TRI A],[MS CONN A],[TANM B],[Cam b],[VI TRI B],[MS CONN B],[Size] " & _
    " From [Data$]" _
 ), cn
 
 '6. Xoa Du lieu cu
 Sheet1.Range("a3:zz1000").ClearContents
 
 '7. Chep ten cot
 Dim i As Integer
    For i = 1 To rst.Fields.Count
       Sheet1.Range("a3").Offset(0, i - 1).Value = rst.Fields(i - 1).Name
    Next
 
 '8. Gan Xuong sheet
 Sheet1.Range("a5").CopyFromRecordset rst
 
Application.ScreenUpdating = True

End Sub
em muốn chọn đến thư mục để chọn nhiều file phải sửa lại như thế nào mong bác giúp đỡ
 
Lần chỉnh sửa cuối:
Upvote 0
Cho mình hỏi ké là muốn copy 1 sheet từ file A sang file B đang mở thì làm lệnh gì. Xin cảm ơn
 
Upvote 0
Xin anh hướng dẫn sử dụng, em tải về mở file excel: FireMySQLAPI, chọn Selectfiles báo lỗi Run-time error 53
Bài đã được tự động gộp:


em muốn chọn đến thư mục để chọn nhiều file phải sửa lại như thế nào mong bác giúp đỡ
Lỗi đó do nó tham chiếu tới 1 DLL khác mà trên máy của bạn không có ... do khi Úp tôi chưa bỏ check nó

nếu có như cầu qua linh sau tham khảo thêm

 
Upvote 0
Web KT

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

Back
Top Bottom