LuuAnh980
Thành viên tiêu biểu
- Tham gia
- 28/9/22
- Bài viết
- 452
- Được thích
- 104
- Giới tính
- Nữ
Vậy là do bạn nêu thiếu tiêu chí lọc không trùng (điều kiện là phải cả 2, hay 3 cột chứ không phải chỉ cột E), còn theo điều kiện bài #3 thì hàm không sai.thiếu Đơn hàng 2925 số mã là 35 , 2925 mã số 43 nữa (các dong 60,62,73,77,78...
!!! . . . . . . . . . .thiếu Đơn hàng 2925 số mã là 35 , 2925 mã số 43 nữa (các dong 60,62,73,77,78...
Dùng code. . . . .Hàm của anh @Hoàng Tuấn 868 đúng rồi, nhưng phải mất 10s mới chạy xong.
Cám ơn anh @Hoàng Tuấn 868.
Anh @Zl: 0933707265 và anh @anhtuan2939 giúp em code với.
Sub LocKhongTrung3Cot()
'Xoa du lieu cu
ClearOld
'Lap danh sach duy nhat moi
With CreateObject("ADODB.Connection")
.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No""")
Sheet9.Range("H4").CopyFromRecordset .Execute("Select f1,f2,f11 From [Sheet3$E2:O] Group by f1,f2,f11 ")
End With
End Sub
Thời gian chạy code của mình đây, vậy mà vẫn hơi lâu thì mình chịu rồi.Code của anh @Hoàng Tuấn 868 chạy hơi lâu
Đã để số mã về nguyên dạng.số mã anh cứ để nguyên trạng, đừng cho thành 3 số.
Bác phải biết chiều lòng thượng đế chớThời gian chạy code của mình đây, vậy mà vẫn hơi lâu thì mình chịu rồi.
View attachment 282646
Đã để số mã về nguyên dạng.
Code bác em mới xem qua, cũng chưa hiểu rõ lắm nhưng có góp ý thế này, nếu chưa phù hợp thì bác bỏ qua nha:Dùng code. . . . .
Chân thành cảm ơn bạn nhé, lâu rồi không đụng đến, lấy code từ ngày xưa (hồi mới lọ mọ vào code) sửa lại cho khớp với dữ liệu của bạn này thôi mà. Có viết mới đâu.Code bác em mới xem qua, cũng chưa hiểu rõ lắm nhưng có góp ý thế này, nếu chưa phù hợp thì bác bỏ qua nha:
Không nên tách sort và loại trùng ra 2 phần. Như thế sẽ phải lặp nhiều hơn (có thêm vòng for loại trùng), và phía trên, vòng for để sort phải xử lý cả những phần tử trùng. Trong khi mình có thể không cần quan tâm tới những phần tử trùng này
Ý tưởng của em là gộp loại trùng vào trong vòng 'for k' đầu tiên luôn, nếu đã có trong dic thì bỏ qua vấn đề sort luôn (không quan tâm tới nó)
Nếu chưa có trong dic thì mới cho chạy vào vòng 'for i' để sort. Tuy nhiên cũng không nên for i=1 mà nên là for i=k+1 để hạn chế bớt vòng lặp dư thừa.
Em chưa viết, mà chỉ nghĩ như vậy thôi!
Em cũng mới chỉ ý tưởng thôi, không biết viết ra có cấn chỗ nào khôngChân thành cảm ơn bạn nhé, lâu rồi không đụng đến, lấy code từ ngày xưa (hồi mới lọ mọ vào code) sửa lại cho khớp với dữ liệu của bạn này thôi mà. Có viết mới đâu.
Ngày xưa mới lọ mọ thì đầu tiên thử cách xắp xếp thứ tự nhỏ đến to, sau đó tìm hiểu thêm về Dictionary thì lại viết tiếp đoạn lọc không trùng rồi ghép hai món lại thì nó ra vậy đó bạn.Em cũng mới chỉ ý tưởng thôi, không biết viết ra có cấn chỗ nào không
Nếu bác có thời gian thì thử xem, giúp người nhưng cũng là giúp mình vận động đầu óc tí nó cũng vui
!!!.. . . .. ............Cám ơn anh @Hoàng Tuấn 868, code bài mới đã nhanh(0,0715) nhưng chổ số mã em nguyên dạng như vầy :01,02,03....., thì của anh là 1,2,3... Mong anh chỉnh lại code dùm em, và muốn lọc qua sheet2 thì chỉnh code thê nào anh
1/ Đã bỏ Msgbox.1/ em xóa dữ liệu lọc đi, và nhấn nút lọc thì nhảy ra MsgBox thời gian -. nhấn OK ->ra dữ liệu loc..Anh chỉnh dùm khi nhấn nút lọc thì ra luôn dữ liệu loc.
2/ Ở máy tính mình không thấy như vậy nên không biết bị sao để sửa.2/ Cột số mã em có số mã này: "05/09" thì khi lọc nó lại ra là 05-Sep mặc dù em đã định dạng "05/09" là Text. Mong anh xem giúp.