trung78952
Thành viên mới
- Tham gia
- 12/11/07
- Bài viết
- 27
- Được thích
- 3
Nếu có 2 học sinh bị trùng tên thì coi như đi hoang. Không ai quản lý bằng họ tên bao giờ. Học sinh thì phải có mã số của học sinh, nhân viên thì có mã số của nhân viên.Dear các bác, e muốn tổng hợp dữ liệu của 1 vùng ở các các file khác nhau vào 1 file tổng hợp. Nhưng vùng này không cố định, nó biến đổi (tăng giảm số lượng row hàng tháng). Xin các bác xem fle đính kèm và chỉ giùm. Thanks alot!
Dùng thử code này, nếu may mắn thì xài đượcDear bác, đây chỉ là file e làm mẫu thôi, chứ e ko phải là giáo viên mà quản lý học sinh, e đưa file mẫu, nhưng kết quả e sẽ áp dụng cho việc khác, chẳng hạn bác vừa làm ở bộ phận kd, vừa làm ở bộ phận bán hàng, thì cuối tháng bác tổng kết chấm công kiểm gì khi mỗi bộ phận phải chấm riêng lẻ. Còn mã nhân viên thì tất yếu là sẽ phải có để làm tiêu thức tìm kiếm (chứ chẳng ai đi tìm theo tên cả). Bác có giúp đc ko nhỉ???
Sub TongHop()
Dim FileName, I As Long, J As Long, Temp(), path As String
Dim Dic As Object, K As Long, Darr(1 To 10000, 1 To 5), X As Long
Set Dic = CreateObject("scripting.dictionary")
path = ThisWorkbook.path
FileName = Array("lop 1A", "lop 1B")
For I = 0 To UBound(FileName)
Workbooks.Open (path & "\" & FileName(I) & ".xlsx")
With ActiveWorkbook
With .ActiveSheet
Temp = .Range(.[B5], .[B65536].End(3)).Resize(, 4).Value
For J = 1 To UBound(Temp)
If Not Dic.exists(Temp(J, 1)) Then
K = K + 1
Dic.Add Temp(J, 1), K
Darr(K, 1) = K
For X = 2 To 5
Darr(K, X) = Temp(J, X - 1)
Next
Else
For X = 3 To 5
Darr(Dic.Item(Temp(J, 1)), X) = _
Darr(Dic.Item(Temp(J, 1)), X) + Temp(J, X - 1)
Next
End If
Next
End With
.Close
End With
Next
[A5:E10000].ClearContents
If K Then [A5].Resize(K, 5) = Darr
End Sub