Nhờ giúp đỡ chiếc xuất dữ liệu từ file chung

Liên hệ QC

tle2003

Thành viên hoạt động
Tham gia
22/1/07
Bài viết
160
Được thích
52
Thư mục công cộng có thể chứa nhiều file xlsx. Xin các bác giúp sửa hay tạo code mới , để khi chạy sẽ cho phép chọn tệp xlsx muốn sửa đổi. Sau khi chọn tệp, code sẽ xóa các cột P đến W, I đến K, D đến G và A khỏi Sheet1 của tệp xlsx ở trên và sau đó thì copy A: G sang sheet1 của tệp xlsm đang hoạt động.
Cám ơn
 

File đính kèm

  • Test.xlsx
    53.6 KB · Đọc: 10
  • ChietXuat.xlsm
    17.1 KB · Đọc: 7
Thư mục công cộng có thể chứa nhiều file xlsx. Xin các bác giúp sửa hay tạo code mới , để khi chạy sẽ cho phép chọn tệp xlsx muốn sửa đổi. Sau khi chọn tệp, code sẽ xóa các cột P đến W, I đến K, D đến G và A khỏi Sheet1 của tệp xlsx ở trên và sau đó thì copy A: G sang sheet1 của tệp xlsm đang hoạt động.
Cám ơn
Bạn Tham khảo thêm code của bạn tôi đã sửa lại ty chút.
Mã:
Sub Chietxuat()

    Dim xlsxFilePath As Variant
    Dim xlsxWorkbook As Workbook
    Dim xlsmWorkbook As Workbook
Dim Sh As Worksheet
Dim Wb As Workbook
Dim Lr&
    
    xlsxFilePath = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx")

Set Wb = ActiveWorkbook
    Set xlsxWorkbook = Workbooks.Open(xlsxFilePath)
    Set Sh = xlsxWorkbook.Sheets("Sheet1")
Lr = Sh.Cells(1000000, 1).End(xlUp).Row
 Set Rng = Union(Sh.Range("A:A" & Lr), Sh.Range("D:G" & Lr), Sh.Range("I:K" & Lr), Sh.Range("P:W" & Lr))
    Rng.Delete
    Sh.Range("A:G" & Lr).Copy Wb.Sheets("Sheet1").Range("A1")
    xlsxWorkbook.Close False
End Sub
 
Upvote 0
Xin xem #4, Cám ơn
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn Tham khảo thêm code của bạn tôi đã sửa lại ty chút.
Mã:
Sub Chietxuat()

    Dim xlsxFilePath As Variant
    Dim xlsxWorkbook As Workbook
    Dim xlsmWorkbook As Workbook
Dim Sh As Worksheet
Dim Wb As Workbook
Dim Lr&
   
    xlsxFilePath = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx")

Set Wb = ActiveWorkbook
    Set xlsxWorkbook = Workbooks.Open(xlsxFilePath)
    Set Sh = xlsxWorkbook.Sheets("Sheet1")
Lr = Sh.Cells(1000000, 1).End(xlUp).Row
 Set Rng = Union(Sh.Range("A:A" & Lr), Sh.Range("D:G" & Lr), Sh.Range("I:K" & Lr), Sh.Range("P:W" & Lr))
    Rng.Delete
    Sh.Range("A:G" & Lr).Copy Wb.Sheets("Sheet1").Range("A1")
    xlsxWorkbook.Close False
End Sub
Cám ơn bác, nhưng mình phải cập nhật 2 dòng
Set Rng = Union(Sh.Range("A:A" & Lr), Sh.Range("D:G" & Lr), Sh.Range("I:K" & Lr), Sh.Range("P:W" & Lr))
Sh.Range("A:G" & Lr).Copy Wb.Sheets("Sheet1").Range("A1")
thành
Set Rng = Union(Sh.Range("A1:A" & Lr), Sh.Range("D1:G" & Lr), Sh.Range("I1:K" & Lr), Sh.Range("P1:W" & Lr))
Sh.Range("A1:G" & Lr).Copy Wb.Sheets("Sheet1").Range("A1"
thì mới chạy được

Vì tệp ChietXuat sẽ dùng lại , bác có thể giúp em đoạn code để xóa dữ liệu cũ trước
Cám ơn bác nhiều
 
Upvote 0
Vì tệp ChietXuat sẽ dùng lại , bác có thể giúp em đoạn code để xóa dữ liệu cũ trước
Cám ơn bác nhiều
Nếu tôi hiểu đúng ý bạn thì Bạn sửa vào sau dòng này
Lr = Sh.Cells(1000000, 1).End(xlUp).Row
....
end sub
thành
Lr = Sh.Cells(1000000, 1).End(xlUp).Row
If Lr>1 then ' đòng này để kiểm tra xem dữ liệu vủa tệp test.xlsx có dữ liệu hay không? nếu có thì thực hiện xóa dữ liệu cũ của sheet1/file ChietXuat và tiến hành các bước tiếp theo. còn không thì không có vấn đề gì sảy ra.
Wb.sheets("sheet1").range("A1").resize(100000,1000).Clearcontents
.......
xlsxWorkbook.Close False
end if
End sub
Tùy bạn để dòng xóa dữ liệu trước hay sau khi xóa các cột của Sheet1/file Test.
Khuyên bạn nên tắt cập nhật màn hình và tắt các thông báo khác (điều này chắc bạn biết)
 
Upvote 0
Nếu tôi hiểu đúng ý bạn thì Bạn sửa vào sau dòng này
Lr = Sh.Cells(1000000, 1).End(xlUp).Row
....
end sub
thành
Lr = Sh.Cells(1000000, 1).End(xlUp).Row
If Lr>1 then ' đòng này để kiểm tra xem dữ liệu vủa tệp test.xlsx có dữ liệu hay không? nếu có thì thực hiện xóa dữ liệu cũ của sheet1/file ChietXuat và tiến hành các bước tiếp theo. còn không thì không có vấn đề gì sảy ra.
Wb.sheets("sheet1").range("A1").resize(100000,1000).Clearcontents
.......
xlsxWorkbook.Close False
end if
End sub
Tùy bạn để dòng xóa dữ liệu trước hay sau khi xóa các cột của Sheet1/file Test.
Khuyên bạn nên tắt cập nhật màn hình và tắt các thông báo khác (điều này chắc bạn biết)
Cám ơn hướng dẫn của bác
 
Upvote 0
Mấy hôm nay có sự cố của , dựa vào file chung tháng trước và tháng mình tạo 2 file test và . Vể nội dung hai file là giống nhau (theo tôi biết), nhưng khi chạy code thì cho kết quả khác nhau. Xin các bác xem và sửa giúp.
Cám ơn
 

File đính kèm

  • ChietXuat.xlsm
    87 KB · Đọc: 4
  • Test2.xlsx
    10.5 KB · Đọc: 5
  • Test.xlsx
    10.3 KB · Đọc: 2
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom