vanlinh105
Thành viên chính thức


- Tham gia
- 30/3/16
- Bài viết
- 56
- Được thích
- 4


bạn xem được chưa.Các bác ơi, giúp e lấy dữ liệu chấm công với ạ!
E xuất từ bảng chấm công ra danh sách số công các ngày của từng nhân viên.
Bây giờ e muốn tạo bảng Tổng lấy giá trị từ file danh sách đã xuất ra dựa vào "Ngày" và "Mã NV".
Bạn thử đoạn Code này xem saoCác bác ơi, giúp e lấy dữ liệu chấm công với ạ!
E xuất từ bảng chấm công ra danh sách số công các ngày của từng nhân viên.
Bây giờ e muốn tạo bảng Tổng lấy giá trị từ file danh sách đã xuất ra dựa vào "Ngày" và "Mã NV".
Public Sub Lay_dulieu()
Dim Dic As Object, R As Long, tem As String
Dim sArr(), dArr(), tArr(), I As Long
Set Dic = CreateObject("Scripting.Dictionary")
With Sheet1
tArr = .Range("A2", .Range("A65535").End(3)).Resize(, 4).Value
End With
For I = 1 To UBound(tArr)
tem = tArr(I, 1) & "#" & tArr(I, 3)
Dic.Item(tem) = I
Next I
With Sheet2
sArr = .Range("A4", .Range("A65535").End(3)).Resize(, 4).Value
ReDim dArr(1 To UBound(sArr), 1 To 1)
For I = 1 To UBound(sArr)
tem = sArr(I, 1) & "#" & sArr(I, 3)
R = Dic.Item(tem)
If R Then
dArr(I, 1) = tArr(R, 4)
Else
dArr(I, 1) = "ngh" & ChrW$(7881)
End If
Next I
.Range("D4").Resize(I - 1) = dArr
MsgBox "Da Cap nhat xong.", , "Thong bao"
End With
Set Dic = Nothing
End Sub
tArr = .Range("A2", .Range("A65535").End(3)).Resize(, 4).Value
Chịu khó thêm biến để bẫy lỗi, không nên ham viết ngắn làm gì.sArr = .Range("A4", .Range("A65535").End(3)).Resize(, 4).Value
Dic.Item(tem) = I
Điều gì xảy ra nếu "tem" có trùng?R = Dic.Item(tem)
Viết tường minh điều kiện của R như nào? Và sau mỗi vòng lặp phải đặt lại giá trị ban đầu của R thì mới xét được R kế tiếp.If R Then


E cảm ơn bác, đúng kiểu này e cần bác ạ, nhưng sao e áp dụng với bảng khác lại không ra kết quả nhỉ?bạn xem được chưa.


Bạn thử đoạn Code này xem sao
Em cảm ơn 2 bác nhé, nhưng em cần hàm thôi, chứ VBA hơi phức tạp với gà mờ như e ạChịu khó thêm biến để bẫy lỗi, không nên ham viết ngắn làm gì.
Điều gì xảy ra nếu "tem" có trùng?
Viết tường minh điều kiện của R như nào? Và sau mỗi vòng lặp phải đặt lại giá trị ban đầu của R thì mới xét được R kế tiếp.
ra mà bạn có vấn đề gì đâu ??Em cảm ơn 2 bác nhé, nhưng em cần hàm thôi, chứ VBA hơi phức tạp với gà mờ như e ạ![]()


Nó chỉ ra mình cột tổng thời gian thôi bác ạ, còn các cột:ra mà bạn có vấn đề gì đâu ??
Sao bạn không đưa từ đầu luôn haizzzNó chỉ ra mình cột tổng thời gian thôi bác ạ, còn các cột:
Vào 1 Ra 1 Vào 2 Ra 2 Vào 3 Ra 3 Vào 4 Ra 4
không ra bác ơi, nó báo lỗi!


Hi. e, cảm ơn bác nhiều nhé!Sao bạn không đưa từ đầu luôn haizzz


Góp vui công thức.Các bác ơi, giúp e lấy dữ liệu chấm công với ạ!
E xuất từ bảng chấm công ra danh sách số công các ngày của từng nhân viên.
Bây giờ e muốn tạo bảng Tổng lấy giá trị từ file danh sách đã xuất ra dựa vào "Ngày" và "Mã NV".