Trang 1/6 1 2 3 4 5 ... cuốicuối
Hiển thị kết quả tìm kiếm từ 1 đến 10 trên tổng số: 56

Ðề tài: Giúp code lọc nhanh Siêu tốc độ

  1. Giúp code lọc nhanh Siêu tốc độ

    Mình muốn lọc theo điều kiện Từ ngày , đến ngày và theo nhân viên ( tất cả,ca1,c2)
    Mình muốn lọc theo dạng Mảng để xữ lý cho nhanh. Ví dụ như Để tài ở đây
    https://www.giaiphapexcel.com/forum/showthread.php?122365-Gi%C3%BAp-code-L%E1%BB%8Dc-t%C3%AAn-h%C3%A0ng-N%E1%BA%BFu-tr%C3%B9ng-C%E1%BB%99ng-d%E1%BB%93n-S%E1%BB%91-L%C6%B0%E1%BB%A3ng
    Code cực kỳ nhanh của tác giả
    hoamattroicoi'
    Hiện tại mình đang dùng code AdvancedFilter Khi dữ liệu lớn code chạy rất Chậm.Xin chân thành cảm ơn !
    Tập tin đính kèm Tập tin đính kèm
    thay đổi nội dung bởi: minhtuan55, 14-02-17 lúc 08:25 PM

  2. Trước khi xài dao fẩu thuật, bạn xài thử lưỡi lam này xem sao:

    PHP Code:
    Option Explicit
    Sub LocKhoanNgayVaCa
    ()
     
    Dim Arr()
     
    Dim Rws As LongAs LongTmr As DoubleCol As ByteAs Long
     Dim fDat 
    As DatelDat As Date
     Dim NV 
    As String
     
     Tmr 
    Timer()
     
    Rws = [b4].CurrentRegion.Rows.Count
     Arr
    () = [A4].Resize(Rws5).Value
     fDat 
    = [i3].Value:     lDat = [i4].Value
     NV 
    = [i5].Value
     ReDim dArr
    (1 To UBound(Arr()), 1 To 5)
     [
    n4].CurrentRegion.Offset(2).ClearContents
     
    For 1 To UBound(Arr())
        If (
    Arr(J1) >= fDat And Arr(J1) <= lDat) And Arr(J5) = NV Then
            W 
    1
            
    For Col 1 To 5
                dArr
    (WCol) = Arr(JCol)
            
    Next Col
        End 
    If
     
    Next J
     
    If W Then
        
    [m4].Resize(W5).Value dArr()
        [
    i1].Value Timer() - Tmr
     End 
    If
    End Sub 
    (hào tất cả mọi người!

  3. code của anh nhanh chóng mặt luôn. Chổ nhân viên có 3 lựa chọn anh nhé ( Tất cả,ca1, ca2) khi em chọn Tất cả thì ca 1 ca 2 đều lấy hết. Anh sữa lại Code giúp em. Cảm ơn anh

    Trích Nguyên văn bởi SA_DQ View Post
    Trước khi xài dao fẩu thuật, bạn xài thử lưỡi lam này xem sao:

    PHP Code:
    Option Explicit
    Sub LocKhoanNgayVaCa
    ()
     
    Dim Arr()
     
    Dim Rws As LongAs LongTmr As DoubleCol As ByteAs Long
     Dim fDat 
    As DatelDat As Date
     Dim NV 
    As String
     
     Tmr 
    Timer()
     
    Rws = [b4].CurrentRegion.Rows.Count
     Arr
    () = [A4].Resize(Rws5).Value
     fDat 
    = [i3].Value:     lDat = [i4].Value
     NV 
    = [i5].Value
     ReDim dArr
    (1 To UBound(Arr()), 1 To 5)
     [
    n4].CurrentRegion.Offset(2).ClearContents
     
    For 1 To UBound(Arr())
        If (
    Arr(J1) >= fDat And Arr(J1) <= lDat) And Arr(J5) = NV Then
            W 
    1
            
    For Col 1 To 5
                dArr
    (WCol) = Arr(JCol)
            
    Next Col
        End 
    If
     
    Next J
     
    If W Then
        
    [m4].Resize(W5).Value dArr()
        [
    i1].Value Timer() - Tmr
     End 
    If
    End Sub 

  4. (1) Trong cột [E:E] (nhân viên có C2 & Ca2; Vậy thì không bao giờ lọc được C2 (vì không có trong DS lọc)

    (2) Tao macro sự kiện tại [I5] mà mần thôi.

    Thay vì câu lệnh:
    Code:
    If (Arr(J, 1) >= fDat And Arr(J, 1) <= lDat) And Arr(J, 5) = NV Then 

    Ta chuyển thành
    PHP Code:
    If (Arr(J1) >= fDat And Arr(J1) <= lDat) And Arr(J5) = Target.Value Then 
    Chúc thành công!
    Ta vẫn còn vô GPE.COM có nghĩa là ta vẫn tồn tại!

  5. Trích Nguyên văn bởi ChanhTQ@ View Post
    (1) Trong cột [E:E] (nhân viên có C2 & Ca2; Vậy thì không bao giờ lọc được C2 (vì không có trong DS lọc)

    (2) Tao macro sự kiện tại [I5] mà mần thôi.

    Thay vì câu lệnh:
    Code:
    If (Arr(J, 1) >= fDat And Arr(J, 1) <= lDat) And Arr(J, 5) = NV Then 

    Ta chuyển thành
    PHP Code:
    If (Arr(J1) >= fDat And Arr(J1) <= lDat) And Arr(J5) = Target.Value Then 
    Chúc thành công!
    Nếu sửa lại NV Then thành Target.Value Then thì lỗi luôn Đại ka ChanhTQ@ ơi ???

  6. Không báo lỗi, nhưng kết quả chưa thỏa hết các iêu cầu;

    Chuyện này dành cho tác giả bài viết thử sức thôi;
    Ta vẫn còn vô GPE.COM có nghĩa là ta vẫn tồn tại!

  7. Trích Nguyên văn bởi ChanhTQ@ View Post
    Không báo lỗi, nhưng kết quả chưa thỏa hết các iêu cầu;

    Chuyện này dành cho tác giả bài viết thử sức thôi;
    cảm ơn các bạn giúp mình. Tại vì mính biết VBA sơ sơ nên cũng không biết viết làm sao. Nhưng mà mình Nói ý tưởng cho các bạn viết như thế này

    Nếu NV= Tất cả thì And ( tu ngay, den ngay )
    Ngược lai thì And ( Tu ngay, den ngay , Nhan vien )

  8. Trích Nguyên văn bởi ChanhTQ@ View Post
    Không báo lỗi, nhưng kết quả chưa thỏa hết các iêu cầu;

    Chuyện này dành cho tác giả bài viết thử sức thôi;
    Em mò như mò Cua giờ code ok rối . mấy anh chị xem giúp em như vậy ok chưa

    Sub LocKhoanNgayVaCa()
    Dim Arr()
    Dim J As Long, Col As Byte, W As Long
    Dim fDat As Date, lDat As Date
    Dim NV As String

    Arr() = Range("A4:E32").Value ' input
    fDat = [i3].Value: lDat = [i4].Value
    NV = [i5].Value
    ReDim dArr(1 To UBound(Arr()), 1 To 5)
    [n4].CurrentRegion.Offset(2).ClearContents

    For J = 1 To UBound(Arr())

    If Len(NV) <> 6 Then
    If (Arr(J, 1) >= fDat And Arr(J, 1) <= lDat) And Arr(J, 5) = NV Then
    W = W + 1
    For Col = 1 To 5
    dArr(W, Col) = Arr(J, Col)
    Next Col
    End If
    Else
    If (Arr(J, 1) >= fDat And Arr(J, 1) <= lDat) Then
    W = W + 1
    For Col = 1 To 5
    dArr(W, Col) = Arr(J, Col)
    Next Col
    End If

    End If
    Next J

    Range("m4").Resize(W, 5).Value = dArr() ' output
    End Sub

  9. 2úa được ấy chứ!

    ; Ta có thể căn cứ vô chữ cái đầu của từ được chọn.
    Ta vẫn còn vô GPE.COM có nghĩa là ta vẫn tồn tại!

  10. Trích Nguyên văn bởi minhtuan55 View Post
    Em mò như mò Cua giờ code ok rối . mấy anh chị xem giúp em như vậy ok chưa
    bạn kha báo 1 biến:DK As Boolean
    sau đó gán biến DK
    Code:
    If Len(NV) <> 6 Then
      dk=(Arr(J, 1) >= fDat And Arr(J, 1) <= lDat) And Arr(J, 5) = NV
    else
      dk=(Arr(J, 1) >= fDat And Arr(J, 1) <= lDat)
    end if
    
    sau đó chỉ cần 1 if
    
    If dk Then
    ...
    thay đổi nội dung bởi: HieuCD, 15-02-17 lúc 08:24 PM

Trang 1/6 1 2 3 4 5 ... cuốicuối

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •