Gộp 2 hoặc nhiều file excel về 1 sheet duy nhất bằng VBA

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

saohadau90

Thành viên mới
Tham gia
27/8/23
Bài viết
5
Được thích
0
Chào mọi người, em đang có 1 vấn đề mong mọi người giúp đỡ. Em đang tiến hành gộp 2 file excel như trên hình

1693101819240.png 1693101842465.png
Nhưng khi tiến hành code trên vba để tạo nút gộp như sau
Sub GopFile()
Dim wb As Workbook
Dim a As Long, lr As Long

ThisWorkbook.Sheets("Sheet1").Range("A2:E" & Rows.Count).ClearContents
FilesToOpen = Application.GetOpenFilename( _
fileFilter:="Microsoft Excel Files (*.xls*), *.xls*", MultiSelect:=True, _
Title:="Chon cac file Excel de gop")

a = 1
While a <= UBound(FilesToOpen)
Set wb = Workbooks.Open(Filename:=FilesToOpen(a))
If a = 1 Then
wb.Sheets(1).UsedRange.Offset(1).Copy ThisWorkbook.Sheets("Sheet1").Range("A2")
Else
lr = ThisWorkbook.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row + 1
wb.Sheets(1).UsedRange.Offset(1).Copy ThisWorkbook.Sheets("Sheet1").Range("A" & lr)
End If
wb.Close False
a = a + 1
Wend

End Sub
thì khi gộp nó sẽ thành như này
1693101946676.png
Vấn đề là trong hình excel đầu tiên, em đã dùng filter cột xếp hạng để chỉ hiển thị những cột có xếp hạng "g" còn bản đầy đủ của hình 1 thì như này
1693102018294.png
Nên cho em hỏi là có cách nào sửa trong vba khi em gộp 2 file như trên hình thì khi gộp nó hiển thị full tất cả dữ liệu từ 2 file chứ không chỉ hiển thị được mỗi mấy cái em đã filter không ạ. Vì đây là em đang test thử nhưng khi làm việc trên công ty thì nó sẽ gộp tới hàng trăm file 1 lần và còn filter liên tục nhiều file trong đó mà cứ phải bật từng cái lên để bung filter ra thì hết ngày mất. Em cám ơn và mong được giúp đỡ ạ.
 
Chào mọi người, em đang có 1 vấn đề mong mọi người giúp đỡ. Em đang tiến hành gộp 2 file excel như trên hình

View attachment 294282 View attachment 294283
Nhưng khi tiến hành code trên vba để tạo nút gộp như sau

thì khi gộp nó sẽ thành như này
View attachment 294284
Vấn đề là trong hình excel đầu tiên, em đã dùng filter cột xếp hạng để chỉ hiển thị những cột có xếp hạng "g" còn bản đầy đủ của hình 1 thì như này
View attachment 294285
Nên cho em hỏi là có cách nào sửa trong vba khi em gộp 2 file như trên hình thì khi gộp nó hiển thị full tất cả dữ liệu từ 2 file chứ không chỉ hiển thị được mỗi mấy cái em đã filter không ạ. Vì đây là em đang test thử nhưng khi làm việc trên công ty thì nó sẽ gộp tới hàng trăm file 1 lần và còn filter liên tục nhiều file trong đó mà cứ phải bật từng cái lên để bung filter ra thì hết ngày mất. Em cám ơn và mong được giúp đỡ ạ.
Sau dòng:
Set wb = Workbooks.Open(Filename:=FilesToOpen(a))
Bạn thử thêm đoạn này:
if activesheet.autofiltermode = true then activesheet.autofiltermode = false
 
Lần chỉnh sửa cuối:
Upvote 0
Sau dòng:
Set wb = Workbooks.Open(Filename:=FilesToOpen(a))
Bạn thử thêm đoạn này:
if activesheet.autofiltermode = tru then activesheet.autofiltermode = false
Cám ơn bạn nhiều ạ, mình làm được rùi, xin lỗi do mình ẩu quá, mình không đọc kỹ nên chưa sửa lại thành tru = true. Giờ chạy ngon lành rồi ạ, cám ơn bạn nhiều
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom