LuuGiaPhúc
Thành viên hoạt động
- Tham gia
- 28/7/21
- Bài viết
- 126
- Được thích
- 51
Chào các anh chị,
Nhờ các anh chị xem giúp em đoạn code để import dữ liệu từ file khác
Code này sai chỗ nào mà tại sao khi chỉ đường dẫn đến 1 file khác có nhiều sheet (từ 3 sheet trở lên) thì nó luôn luôn chỉ import 2 sheet đầu thôi.
Em cảm ơn ạ
Sub Import()
Dim LastRow As Long
Dim chonfile As Variant
Dim i As LongPtr, j As LongPtr, a As Long, lrn As Long, lr As Long
Dim openfile
Dim sh As Worksheet, sn As Worksheet
Dim mn(), md
Application.ScreenUpdating = False
Application.DisplayAlerts = False
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("A2:CF" & LastRow).Clear
Set sh = ThisWorkbook.Sheets("Sheet1")
On Error Resume Next
chonfile = Application.GetOpenFilename(Title:="Chon file...", filefilter:="exel file(*.xls*),*.xls*", MultiSelect:=True)
For i = 1 To UBound(chonfile)
Set openfile = Workbooks.Open(chonfile(i))
For j = 1 To Sheets.Count
Set sn = openfile.Sheets(j)
sn.Activate
a = 6 ' noi bat dau copy
lrn = sn.Cells(a, 1).End(xlDown).Row
sn.Range(Cells(a, 1), Cells(lrn, 32)).Copy 'Cells(a, 1): so 1 là cot A , Cells(lrn, 32) : So 32 là cot cuôi cùng can copy
sh.Range("A" & lr + 2).PasteSpecial xlPasteValues 'Cot A la cot bat dau paste vao
lr = sh.Cells(Rows.Count, 2).End(xlUp).Row
Next j
openfile.Close
Next
On Error GoTo 0
sh.Select
sh.Range("A6").Select
MsgBox "Da import tong cong : " & i - 1 & " file " & j - 1 & " Sheet vào sheet1"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Nó chỉ import được 2 sheet đầu tiên, đến hàng thứ 130 002 thì nghỉ, không chịu paste tiếp sheet 3
Nhờ các anh chị xem giúp em đoạn code để import dữ liệu từ file khác
Code này sai chỗ nào mà tại sao khi chỉ đường dẫn đến 1 file khác có nhiều sheet (từ 3 sheet trở lên) thì nó luôn luôn chỉ import 2 sheet đầu thôi.
Em cảm ơn ạ
Sub Import()
Dim LastRow As Long
Dim chonfile As Variant
Dim i As LongPtr, j As LongPtr, a As Long, lrn As Long, lr As Long
Dim openfile
Dim sh As Worksheet, sn As Worksheet
Dim mn(), md
Application.ScreenUpdating = False
Application.DisplayAlerts = False
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("A2:CF" & LastRow).Clear
Set sh = ThisWorkbook.Sheets("Sheet1")
On Error Resume Next
chonfile = Application.GetOpenFilename(Title:="Chon file...", filefilter:="exel file(*.xls*),*.xls*", MultiSelect:=True)
For i = 1 To UBound(chonfile)
Set openfile = Workbooks.Open(chonfile(i))
For j = 1 To Sheets.Count
Set sn = openfile.Sheets(j)
sn.Activate
a = 6 ' noi bat dau copy
lrn = sn.Cells(a, 1).End(xlDown).Row
sn.Range(Cells(a, 1), Cells(lrn, 32)).Copy 'Cells(a, 1): so 1 là cot A , Cells(lrn, 32) : So 32 là cot cuôi cùng can copy
sh.Range("A" & lr + 2).PasteSpecial xlPasteValues 'Cot A la cot bat dau paste vao
lr = sh.Cells(Rows.Count, 2).End(xlUp).Row
Next j
openfile.Close
Next
On Error GoTo 0
sh.Select
sh.Range("A6").Select
MsgBox "Da import tong cong : " & i - 1 & " file " & j - 1 & " Sheet vào sheet1"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Nó chỉ import được 2 sheet đầu tiên, đến hàng thứ 130 002 thì nghỉ, không chịu paste tiếp sheet 3