Nhờ chỉnh lại CODE VBA (1 người xem)

Liên hệ QC

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

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 ạ.

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
 

File đính kèm

Cột D không chứa ngày tháng mà chỉ có text. Tức trông như ngày tháng nhưng không phải ngày tháng - text giả bộ ngày tháng, ngày tháng "nhái"

Cột E cũng là text
 
Upvote 0
Cột D không chứa ngày tháng mà chỉ có text. Tức trông như ngày tháng nhưng không phải ngày tháng - text giả bộ ngày tháng, ngày tháng "nhái"

Cột E cũng là text

Có cách nào để làm D vs E thành đúng định dạng Thời gian được không Anh.
Mong anh chỉ giáo thêm ạ
 
Upvote 0
Có cách nào để làm D vs E thành đúng định dạng Thời gian được không Anh.
Mong anh chỉ giáo thêm ạ
Cách thì ắt phải có. Bạn lập chủ đề mới mà hỏi.

Mà thôi, bạn có thể làm như sau.
Ghi nhầm, đã sửa lại
Thêm cột trống sau cột D -> chọn dữ liệu trong cột D -> menu Data -> Text to columns -> next -> chọn SPACE -> Finish -> chọn dữ liệu cột D -> Data -> Tet to columns -> next -> next -> chọn option Date -> bên cạnh chọn DMY -> Finish

Bạn đã có ngày trong cột D và giờ trong cột mới thêm. Bây giờ nếu chỉ muốn lấy ngày thì DELETE cột mới thêm. Nếu muốn cả giờ thì gộp 2 cột.

Làm tương tự với E
 
Lần chỉnh sửa cuối:
Upvote 0
@ chủ thớt:
- Chưa biết Dic dùng để làm gì?
- Mấy giá trị tại C2, C3 gán vào biến để đỡ phải gọi từ bảng tính nhiều lần, giá trị cần đối chiếu với cột K cho vào một hằng.
- Dòng If ... And... And... Then nên cắt thành 3 If ... Then
 
Upvote 0
Có cách nào để làm D vs E thành đúng định dạng Thời gian được không Anh.
Mong anh chỉ giáo thêm ạ
Còn tùy theo bạn muốn nói D vs E là cái gì?
Tiếng Việt teen chat thì vs là "cùng với". Tiếng Anh thì từ đó có nghĩa là "đối với"; do tiếng Latin versus = hướng (mặt) về
Khi hỏi bài thì điều quan trọng nhất là viết cho rõ. Viết tắt là một phương pháp làm cho câu hỏi thêm khó hiểu.
 
Upvote 0
Còn tùy theo bạn muốn nói D vs E là cái gì?
Tiếng Việt teen chat thì vs là "cùng với". Tiếng Anh thì từ đó có nghĩa là "đối với"; do tiếng Latin versus = hướng (mặt) về
Khi hỏi bài thì điều quan trọng nhất là viết cho rõ. Viết tắt là một phương pháp làm cho câu hỏi thêm khó hiểu.

Dạ em sơ sót ạ, Là Cột D với cột E ạ.
Cột D với cột E hiện là dạng text, Giờ em muốn hỏi phải viết code thế nào để có thể dùng được điều kiện thời gian ạ.
Bài đã được tự động gộp:

@ chủ thớt:
- Chưa biết Dic dùng để làm gì?
- Mấy giá trị tại C2, C3 gán vào biến để đỡ phải gọi từ bảng tính nhiều lần, giá trị cần đối chiếu với cột K cho vào một hằng.
- Dòng If ... And... And... Then nên cắt thành 3 If ... Then

Dạ em không giỏi code này, Code này hôm trước e có xin được code này trên forum và về chỉnh sửa lại thui ạ.
Giờ cần chỉnh lại thế nào ạ, Mong anh chỉ giáo rõ hơn giúp em.
.
 
Upvote 0
Nếu thời gian ở dạng text chuẩn "dd/mm/yyyy" thì có thể dùng hàm CDate để đổi thành ngày.
 
Upvote 0
Web KT

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

Back
Top Bottom