Tằng Mằn Chắn
Tằng Mằn Chắn
Thảo luận 3 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 194 lượt xem

Sub Gop_Du_Lieu_TongQua() ' Mo thu muc chon nhieu file gop vao mot file ' Tao thu muc mo file

Sub Gop_Du_Lieu_TongQua() ' Mo thu muc, chon nhieu file, gop vao mot file
' Tao thu muc mo file
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True 'Chon nhieu file cung luc
.Show 'Hien cua so chon file
' Xac dinh file duoc chon
Dim i As Long
For i = 1 To .SelectedItems.Count
'Gan bien cho cac Workbook
Dim wb_KQ As Workbook
Dim wb_Select As Workbook
Set wb_KQ = ThisWorkbook
Set wb_Select = Workbooks.Open(.SelectedItems(i))
'Dua du lieu tu cac workbook khac
'Xac dinh dong cuoi cua Wb2
Dim DongCuoi_wb2 As Long
DongCuoi_wb2 = wb_Select.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
'Xac dinh khoang cach so dong du lieu
'Khoang cach = Dong cuoi - Dong dau
Dim DongDau_wb2 As Long
DongDau_wb2 = 2
Dim KhoangCach_wb2 As Long
KhoangCach_wb2 = DongCuoi_wb2 - DongDau_wb2 + 1
'Noi nhan
'Tim dong cuoi cua noi nhan la dong diem bat dau
'Pham vi cua vung nhan la khoang cach
Dim DongCuoi_wb4 As Long
DongCuoi_wb4 = wb_KQ.Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
'Dua du lieu vao
wb_KQ.Sheets("Data").Range("A" & DongCuoi + 1 & ":C" & DongCuoi_wb4 + KhoangCach_wb2).Value = wb_Select.Sheets("Sheet1").Range("A" & DongDau_wb2 & ":C" & DongCuoi_wb2).Value
'Dong wb lai
wb_Select.Close SaveChanges:=False

Next i
End With


"Em làm như trên nhưng kết quả trả về là book 3 ghi đè lên dòng tiêu đề, book1 và book 2 thì báo lỗi #N/A. Nhờ thầy xem giúp em ạ.
Thảo luận 3 câu trả lời
Lượt xem 194 lượt xem
Vỗ tay vỗ tay
Tằng Mằn Chắn 20:05 - May 13, 2020
Vấn đề ở đây là các biến liên quan tới Dòng đầu và Dòng cuối.
Trong đoạn code này:
wb_KQ.Sheets("Data").Range("A" & DongCuoi + 1 & ":C" & DongCuoi_wb4 + KhoangCach_wb2).Value = wb_Select.Sheets("Sheet1").Range("A" & DongDau_wb2 & ":C" & DongCuoi_wb2).Value
Biến DongCuoi bạn chưa xác định, mới chỉ có DongCuoi_Wb2 với DongCuoi_Wb4
như vậy tọa độ điểm đầu của wb_KQ sẽ bị sai, dẫn tới sai hết các nội dung tiếp theo trong vòng lặp.
Vỗ tay vỗ tay
Tằng Mằn Chắn 01:05 - May 15, 2020
Sub GetData()
'Tao thu muc mo file
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.Show
'Xac dinh file nao duoc chon
Dim i As Long
For i = 1 To .SelectedItems.Count
'Gan bien cho cac worbook
Dim wb_KQ As Workbook
Dim wb_Select As Workbook
Set wb_KQ = ThisWorkbook
Set wb_Select = Workbooks.Open(.SelectedItems(i))
'Dua du lieu tu cac workbook
Dim DongCuoi As Long
DongCuoi = wb_Select.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
Dim DongDau As Long
DongDau = 2
Dim KhoangCach As Long
KhoangCach = DongCuoi - DongDau + 1
'Noi nhan
Dim DongCuoi_wb4 As Long
DongCuoi_wb4 = wb_KQ.Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
wb_KQ.Sheets("Data").Range("A" & DongCuoi_wb4 + 1 & ":C" & DongCuoi_wb4 + KhoangCach).Value = wb_Select.Sheets("Sheet1").Range("A" & DongDau & ":C" & DongCuoi).Value
'Dong wb lai
wb_Select.Close SaveChanges:=False
Next i
End With
End Sub

Em đã điều chỉnh và chạy được code thầy nhé.Cảm ơn thầy ạ!
Vỗ tay vỗ tay
Tằng Mằn Chắn 21:06 - Jun 27, 2020
' Gia dinh file dich la book4, file nguon la book1,2,3 trong cac file mac dinh co 3 sheet, sheet1,2,3, cau truc du lieu giong nhau.
' Yeu cau noi du lieu tu sheet1 cua book1,2,2 sang sheet1 cua book4 trong dieu kien book 4 dang mo.
Sub Noi_du_lieu() ' bat dau chuong trinh
With Application.FileDialog(msoFileDialogFilePicker) 'Tao thu muc mo file
.AllowMultiSelect = True ' Cho phep chon nhieu file
.Show ' Hien cua so chon file
Dim i As Long ' gan bien de danh dau tung file duoc chon
For i = 1 To .SelectedItems.Count ' Tac dong len file thu i duoc chon
Dim wb_KQ As Workbook ' gan ten cho file dich
Dim wb_Select As Workbook ' gan ten cho file nguon
Set wb_KQ = ThisWorkbook ' dat file dich la file dang mo
Set wb_Select = Workbooks.Open(.SelectedItems(i)) ' dat file nguon la file duoc mo thu i
Dim DongCuoi As Long ' khai bao bien Dong cuoi
DongCuoi = wb_Select.Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row ' Tim dong cuoi tren file nguon
Dim DongDau As Long ' khai bao bien dong dau
DongDau = 2 ' gan dong dau gia tri la 2
Dim KhoangCach As Long ' Khai bao bien khoang cach
KhoangCach = DongCuoi - DongDau + 1 ' Tim khoang cach du lieu tren file nguon co bao nhieu dong
Dim DongCuoi_wb_KQ As Long ' Khai bao bien dong cuoi trong file dich
DongCuoi_wb_KQ = wb_KQ.Sheets("sheet1").Range("A" & Rows.Count).End(xlUp).Row ' Tim dong cuoi tren file dich
wb_KQ.Sheets("Sheet1").Range("A" & DongCuoi_wb_KQ + 1 & ":C" & DongCuoi_wb_KQ + KhoangCach).Value = _
wb_Select.Sheets("Sheet1").Range("A" & DongDau & ":C" & DongCuoi).Value ' Gan gia tri tu file nguon sang file dich
wb_Select.Close SaveChanges:=False 'Dong wb_Select lai va khong ghi noi dung thay doi
Next i ' chuyen sang lam viec voi file nguon tiep theo
End With ' Het lenh with khi bien i da chay het gia tri
End Sub ' Ket thuc chuong trinh
Vỗ tay vỗ tay
Câu hỏi liên quan
@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội