Thầy cho em hỏi đoạn này bị lỗi gì vậy ạ?
bạn xem đã chọn file chưa, và tên file được chọn có chứa tên là BangLuong không. Lỗi ở đây liên quan tới file được chọn. Bạn có thể sử dụng đoạn code mẫu sau đây để lấy dữ liệu từ nhiều file vào 1 file (bỏ qua phần tên file, nhớ sửa lại phạm vi vùng cho-nhận):
Sub Import_data_from_multi_Workbooks()
'Khai báo các biến sử dụng
Dim ThisWB As Workbook, OpenWB As Workbook 'Biến Workbook
Dim i As Integer 'Biến vòng lặp
Dim lr_Data As Long 'Dòng cuối bảng nhận dữ liệu (lr = Last Row)
Dim fr_OpenWB As Long 'Dòng đầu bảng cho dữ liệu (fr = First Row)
Dim lr_OpenWB As Long 'Dòng cuối bảng cho dữ liệu
Dim KhoangCach As Long 'Khoảng cách tính từ dòng đầu tới dòng cuối nơi cho
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True 'Cho phép chọn nhiều file cùng lúc (chọn 1 file là False)
.Show
For i = 1 To .SelectedItems.Count 'Vòng lặp theo số file được chọn
Set ThisWB = ThisWorkbook 'Workbook ban đầu
Set OpenWB = Workbooks.Open(.SelectedItems(i)) 'Workbook được chọn
'Xác định giá trị các biến phạm vi Nơi cho, Nơi nhận
lr_Data = ThisWB.Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
fr_OpenWB = 8
lr_OpenWB = OpenWB.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
KhoangCach = lr_OpenWB - fr_OpenWB + 1
'Đưa dữ liệu từ Nơi cho sang Nơi nhận
ThisWB.Sheets("Data").Range("A" & lr_Data + 1 & ":BM" & lr_Data + KhoangCach).Value = _
OpenWB.Sheets(1).Range("A" & fr_OpenWB & ":BM" & lr_OpenWB).Value
'Đóng bảng tính đã mở lên trước đó
OpenWB.Close SaveChanges:=False
Next i
End With
End Sub