Nhờ thầy test lại thử: đối với cách hướng dẫn theo đoạn code ở dưới, mình chỉ gộp được tối đa các file đến 130.000 dòng thôi. Đối với gộp các file ít dòng thì chính xác
Option Explicit
Sub S_GopWB_TongQuat()
'Tao mo thu muc mo File
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.Show 'Hien cua so chon File
'Xac dinh file nao duoc chon
Dim i As Long
For i = 1 To .SelectedItems.Count
'Gan bien cho cac WB
Dim S_KQ As Workbook
Dim S_WB_Select As Workbook
Set S_KQ = ThisWorkbook
Set S_WB_Select = Workbooks.Open(.SelectedItems(i))
Dim S_Dongcuoi_WB_Select As Long
S_Dongcuoi_WB_Select = S_WB_Select.Sheets("sheet2").Range("A" & Rows.Count).End(xlUp).Row
'Xac dinh khoang cac so dong du lieu
Dim S_Dongdau_WB_Select As Long
S_Dongdau_WB_Select = 2
Dim S_KhoangCach_WB_Select As Long
S_KhoangCach_WB_Select = S_Dongcuoi_WB_Select - S_Dongdau_WB_Select + 1
'Noi nhan
Dim S_Dongcuoi_KQ As Long
S_Dongcuoi_KQ = S_KQ.Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
'Dua du lieu vao
S_KQ.Sheets("Data").Range("A" & S_Dongcuoi_KQ + 1 & ":AG" & S_Dongcuoi_KQ + S_KhoangCach_WB_Select).Value = _
S_WB_Select.Sheets("sheet2").Range("A" & S_Dongdau_WB_Select & ":AG" & S_Dongcuoi_WB_Select).Value
'Dong WB lai
S_WB_Select.Close savechanges:=False
Next i
End With
End Sub
Chào bạn để gộp dữ liệu lớn bạn có thể dùng sql để thực hiện nhé, bạn có thể xem khoá VBAG02