Code sự kiện khi Save (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

phongkiemtinh

Thành viên thường trực
Tham gia
22/7/09
Bài viết
224
Được thích
5
E có code chạy khi lưu file, chạy ổn định khi 2 cột điều kiện là ngày giờ tham chiếu đến cell khác, cell khác là cel nhập ngày giờ.
Còn nếu nhập ngày giờ trực tiếp vào 2 cột điều kiện của code thì lỗi.(dòng màu xanh).Nhờ GPE giải thích dùm tại sao.

Option Explicit
' tu dong danh "END" vao cot "end sample" dua vao cot Gcas va lot , so sa´nh lay du lieu trung cuoi cung trong sheet va giua cac sheet.


Public Sub Endsample()
Application.ScreenUpdating = False
Dim Vung, Ws, I, K, kK, J, d, Mg, A, iMax, iNgayGio, B, M
Set d = CreateObject("scripting.dictionary")
ReDim Mg(1 To 100, 1 To 50)
kK = 1
For Each Ws In Worksheets
B = Ws.Name
If Left(Ws.Name, 4) = "data" Then
kK = kK + 3: iNgayGio = 0
Set Vung = Ws.Range(Ws.[A2], Ws.[A10000].End(xlUp)).Resize(, 11)
For I = 1 To Vung.Rows.Count
If Not d.exists(Vung(I, 11).Value) Then
K = K + 1
d.Add Vung(I, 11).Value, K
iNgayGio = Vung(I, 5).Value2 + Vung(I, 6).Value2
If iNgayGio > Mg(K, 2) Then
Mg(K, 1) = Vung(I, 11)
Mg(K, 2) = iNgayGio
Mg(K, kK) = iNgayGio
Mg(K, kK + 1) = Vung(I, 11).Row
Mg(K, kK + 2) = Mg(K, kK + 2) + 1
End If
Else
J = d.Item(Vung(I, 11).Value)
iNgayGio = Vung(I, 5).Value2 + Vung(I, 6).Value2
If iNgayGio > Mg(J, kK) Then
Mg(J, 2) = IIf(Mg(J, 2) > iNgayGio, Mg(J, 2), iNgayGio)
Mg(J, kK) = iNgayGio
Mg(J, kK + 1) = Vung(I, 11).Row
Mg(J, kK + 2) = Mg(J, kK + 2) + 1
End If
End If
Next I
End If
Next Ws
M = 1
For Each Ws In Worksheets
If Left(Ws.Name, 4) = "data" Then
M = M + 3
Ws.Range(Ws.[A3], Ws.[A10000].End(xlUp)).Offset(, 8).ClearContents: 'Ws.Range(Ws.[A3], Ws.[A10000].End(xlUp)).Offset(, 16).ClearContents
With Ws
For I = 1 To K
If Len(Mg(I, M)) Then
.Cells(Mg(I, M + 1), 7) = IIf(Mg(I, M) = Mg(I, 2), "END", "Còn line khác")
'.Cells(Mg(I, M + 1), 17) = Mg(I, M + 2)
End If
Next I
End With
End If
Next Ws
Application.ScreenUpdating = True
End Sub
 
Web KT

Bài viết mới nhất

Back
Top Bottom