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


- Tham gia
- 16/12/15
- Bài viết
- 76
- Được thích
- 4
Gửi các Anh Chị FORUMS,
em đang tập làm 1 báo cáo bằng VBA, Em muốn tách các giá trị sheet R03_RP001 thỏa mãn các điều kiện sang sheet VESSEL D:
- Thời gian ô C3 Sheet báo cáo>Thời gian E (Departure time) > Thời gian ô C2 Sheet báo cáo.
- Giá trị cột K (Category) = "D"
Em đã viết 1 đoạn code (file đính kèm) mà không chạy, Hình nó không hiểu được điều kiên thời gian.
Mong mọi người chỉ dẫn sửa chữa giúp em code này với ạ.
em đang tập làm 1 báo cáo bằng VBA, Em muốn tách các giá trị sheet R03_RP001 thỏa mãn các điều kiện sang sheet VESSEL D:
- Thời gian ô C3 Sheet báo cáo>Thời gian E (Departure time) > Thời gian ô C2 Sheet báo cáo.
- Giá trị cột K (Category) = "D"
Em đã viết 1 đoạn code (file đính kèm) mà không chạy, Hình nó không hiểu được điều kiên thời gian.
Mong mọi người chỉ dẫn sửa chữa giúp em code này với ạ.
Mã:
Sub LocTAUND()
Dim Darr, arrNH(), arrDO(), Dic As Object
Dim i As Long, K As Long, nDO As Long, J As Integer
Set Dic = CreateObject("Scripting.Dictionary")
Darr = Sheets("R03_RP001").Range("A1:Q" & Sheets("R03_RP001").Range("A2").End(xlDown).Row)
ReDim arrNH(1 To UBound(Darr), 1 To 10): ReDim arrDO(1 To UBound(Darr), 1 To 10)
For J = 1 To 10
arrNH(1, J) = Darr(1, Choose(J, 1, 2, 5, 6, 7, 8, 9, 10, 11, 16))
arrDO(1, J) = arrNH(1, J)
Next J
K = 1: nDO = 1
For i = 2 To UBound(Darr)
If Darr(i, 5) >= Sheets("BAO CAO").Range("C2").Value And Darr(i, 5) < Sheets("BAO CAO").Range("C3").Value And Darr(i, 11) = "D" Then
K = K + 1
For J = 1 To 10
arrNH(K, J) = Darr(i, Choose(J, 1, 2, 5, 6, 7, 8, 9, 10, 11, 16))
Next J
If Not Dic.Exists(arrNH(K, 1)) Then Dic.Add arrNH(K, 1), ""
End If
Next i
With Sheets("VESSEL D")
.Range("A1:J" & .Range("A200000").End(xlUp).Row).ClearContents
.Range("A1").Resize(K, 10) = arrNH
End With
Set Dic = Nothing
End Sub