Thầy cho e hỏi chút ạ:
Em có 2 file bảng lương và bảng chấm công
File 1 có các sheet chấm công và bảng lương từ tháng 1 đến tháng 12 của công trình A: CC1, BL1, CC2,BL2,.......CC2,BL3
File 1 có các sheet chấm công và bảng lương từ tháng 1 đến tháng 12 của công trình B: CC1, BL1, CC2,BL2,.......CC2,BL3
Bây giờ e muốn tổng hợp dữ liệu từ các sheet bảng lương BL từ cả 2 file ( tổng hợp cho 1 năm) thì e nên làm thế nào ạ, dùng câu lệnh như thế nào ạ. Nhờ thầy hướng dẫn giúp e.
Em viết nhầm đoạn cuối tên các sheet trong file, các sheet cuối cùng trong các file là CC12, BL12
Bạn tìm hiểu cách làm trong chương 10 - sử dụng vòng lặp để tạo lệnh gom dữ liệu tự động nhé.
Trong đó có file mẫu về gom bảng lương từ nhiều tháng vào 1 bảng duy nhất.
Nhưng mà bảng lương của e có cả sheet chấm công và sheet tính lương từ tháng 1 đến tháng 12, trong khi đó e chỉ muốn lấy ra các sheet tính lương từ tháng 1 đến tháng 12 thì làm thế nào ạ?
Bài mẫu hướng dẫn chương 10 thì lấy toàn bộ cả file, và trong file đấy chỉ có 1 sheet nên chưa sát với ý e đang muốn tìm hiểu cách làm
Nhờ thầy hướng dẫn cụ thể hơn trong trường hợp này của e ạ.
Em cảm ơn thầy
Bạn có thể xét 1 vòng lặp với tên Sheet:
Dim i as long
For i = 1 to Worksheets.Count
IF Worksheets(i).Name = "BL*" Then
... 'lệnh lấy dữ liệu từ Sheet i sang sheet tổng hợp
End If
Nếu sheet nào có tên là "BL*" thì mới lấy dữ liệu (trong đó dấu * đại diện cho ký tự bất kỳ phía sau chữ BL) thay vì lấy ở tất cả các sheet.
Như vậy có thể bỏ qua các sheet CC để chỉ lấy ở các sheet BL
Thầy ơi, nhờ thầy hướng dẫn thêm, e chưa biết nên cài thêm 1 vòng lặp như trên vào đâu trong bài code này để chạy được theo ý muốn
Bài này là mở từng file một theo bài học ạ
Thầy hướng dẫn thêm giúp e ạ.
Sub Luu_DuLieu()
'Thu muc chon file
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True 'cho phep chon nhieu file
.Show 'Hien cua so chon file
Dim i As Integer
For i = 1 To .SelectedItems.Count
'Xet file duoc chon
Dim wb_KQ As Workbook 'Bien workbook ket qua (Bang luong tong hop)
Dim wb_1 As Workbook 'Bien workbook duoc chon tu thu muc (Tung file bang luong chi tiet)
Set wb_KQ = ThisWorkbook
Set wb_1 = Workbooks.Open(.SelectedItems(i))
'B1: xac dinh dong cuoi bang tong hop (Bang luong tong hop)
Dim DongCuoi_KQ As Long
DongCuoi_KQ = wb_KQ.Sheets("Data_TienLuong").Range("A" & Rows.Count).End(xlUp).Row
'B2: xac dinh dong dau va dong cuoi bang chi tiet (Tung file bang luong chi tiet)
Dim DongDau_CT As Long
DongDau_CT = 8
Dim DongCuoi_CT As Long
DongCuoi_CT = wb_1.Sheets(1).Range("F" & Rows.Count).End(xlUp).Row
'B3: xac dinh khoang cach
Dim KhoangCach As Long
KhoangCach = DongCuoi_CT - DongDau_CT + 1
'B4: luu
wb_KQ.Sheets("Data_TienLuong").Range("A" & DongCuoi_KQ + 1 & ":BM" & DongCuoi_KQ + KhoangCach).Value = _
wb_1.Sheets(1).Range("A" & DongDau_CT & ":BM" & DongCuoi_CT).Value
'B5: Dong file noi dung
wb_1.Close SaveChanges:=False
Next i
End With
End Sub
Thầy ơi thầy cho e hỏi, e viết code theo hướng dẫn của thầy ở trên mà chưa đúng, nhờ thầy chỉ giúp e chỗ sai trong đoạn code này giúp e sửa lại ạ. E cảm ơn thầy.
Sub Luu_DuLieu()
'B1: xac dinh dong cuoi bang tong hop (Bang luong tong hop)
Dim DongCuoi_TH As Long
DongCuoi_TH = Sheets("TH").Range("A" & Rows.Count).End(xlUp).Row
'B2: xac dinh dong dau va dong cuoi bang chi tiet (Tung file bang luong chi tiet)
Dim DongDau_CT As Long
DongDau_CT = 8
Dim i As Long
For i = 1 To Worksheets.Count
Dim DongCuoi_CT As Long
DongCuoi_CT = Sheets(i).Range("A" & Rows.Count).End(xlUp).Row
'B3: xac dinh khoang cach
Dim KhoangCach As Long
KhoangCach = DongCuoi_CT - DongDau_CT + 1
'B4: luu
If Worksheets(i).Name = "BL*" Then
Sheets("TH").Range("A" & DongCuoi_TH + 1 & ":N" & DongCuoi_TH + KhoangCach).Value = _
Sheets(i).Range("A" & DongDau_CT & ":N" & DongCuoi_CT).Value
End If
Next i
End Sub
Bạn có thể vui lòng gửi kèm file được không? vì để kiểm tra những đoạn code dài thì cần chạy trên file excel mới rõ, còn chỉ đọc code sẽ khó phát hiện lỗi.
Cách đính kèm file: Bạn đưa file vào Google Drive của bạn, sau đó lấy link chia sẻ => Gửi link đó vào mục hỏi đáp.
Chú ý khi tạo link chia sẻ bạn cần đặt chế độ public (công khai) cho đường link nhé.
https://docs.google.com/spreadsheets/...
Em muốn tổng hợp các sheet có tên BL vào 1 bảng tổng hợp TH ạ. Nhờ thầy giúp e ạ
thầy ơi e đã đính kèm file rồi ạ. Nhờ thầy chỉ lỗi giúp e để e sửa lại ạ. Em cảm ơn thầy