[HELP] VBA ẩn hiện dòng theo điều kiện chạy chậm

Liên hệ QC

lovestoryo0o

Thành viên mới
Tham gia
9/4/10
Bài viết
7
Được thích
0
Em chào các bác ạ,
Em có 1 file excel có VBA ẩn hiện dòng theo điều kiện. Tuy nhiên mỗi lần chạy VBA mất khá nhiều thời gian. Công việc thì cần tốn ít thời gian trong khi mỗi lần chạy VBA ẩn hiện dòng là tất cả các file excel sẽ bị treo theo nên chỉ còn cách ngồi nhìn nó chạy xong, Khá là ức chế các bác ạ.
Em có đính kèm dưới bài 1 file excel tương tự. Nhờ các bác giúp em điều chỉnh code hoặc có một đoạn code khác sao cho có thể rút bớt thời gian chạy VBA với ạ.
Xin cám ơn các bác nhiều ạ.
 

File đính kèm

  • test an dong.xls
    4.4 MB · Đọc: 23
Em chào các bác ạ,
Em có 1 file excel có VBA ẩn hiện dòng theo điều kiện. Tuy nhiên mỗi lần chạy VBA mất khá nhiều thời gian. Công việc thì cần tốn ít thời gian trong khi mỗi lần chạy VBA ẩn hiện dòng là tất cả các file excel sẽ bị treo theo nên chỉ còn cách ngồi nhìn nó chạy xong, Khá là ức chế các bác ạ.
Em có đính kèm dưới bài 1 file excel tương tự. Nhờ các bác giúp em điều chỉnh code hoặc có một đoạn code khác sao cho có thể rút bớt thời gian chạy VBA với ạ.
Xin cám ơn các bác nhiều ạ.
Chào Bạn,
Nếu dữ liệu nhiều có thể sẽ khó sử dụng với Union, Bạn có thể kết hợp thêm với chức năng sắp xếp sau đó số dòng dữ liệu cần ẩn rồi ẩn một lần là được thay vì phải duyệt từng dòng để xét.
 
Upvote 0
Mục đích của quá trính ẩn các dòng nào đó là gì vậy bạn?;
 
Upvote 0
Tôi không mở file xls.
Đưa nguyên đoạn code của bạn lên đây xem thử.
 
Upvote 0
Em chào các bác ạ,
Em có 1 file excel có VBA ẩn hiện dòng theo điều kiện. Tuy nhiên mỗi lần chạy VBA mất khá nhiều thời gian. Công việc thì cần tốn ít thời gian trong khi mỗi lần chạy VBA ẩn hiện dòng là tất cả các file excel sẽ bị treo theo nên chỉ còn cách ngồi nhìn nó chạy xong, Khá là ức chế các bác ạ.
Em có đính kèm dưới bài 1 file excel tương tự. Nhờ các bác giúp em điều chỉnh code hoặc có một đoạn code khác sao cho có thể rút bớt thời gian chạy VBA với ạ.
Xin cám ơn các bác nhiều ạ.
Dùng filter của excel nhanh hơn nhiều
 
Upvote 0
B
Em chào các bác ạ,
Em có 1 file excel có VBA ẩn hiện dòng theo điều kiện. Tuy nhiên mỗi lần chạy VBA mất khá nhiều thời gian. Công việc thì cần tốn ít thời gian trong khi mỗi lần chạy VBA ẩn hiện dòng là tất cả các file excel sẽ bị treo theo nên chỉ còn cách ngồi nhìn nó chạy xong, Khá là ức chế các bác ạ.
Em có đính kèm dưới bài 1 file excel tương tự. Nhờ các bác giúp em điều chỉnh code hoặc có một đoạn code khác sao cho có thể rút bớt thời gian chạy VBA với ạ.
Xin cám ơn các bác nhiều ạ.
File này bạn đặt lọc ở cột A, trong ô cột A bạn đặt điều kiện lọc nếu đúng hiện 1 nếu không hiện 0, cho ký tự cột A là màu trắng, Khi nào cần in bạn chỉ cần lọc bỏ số 0 đi là được, khi cần hiện lại thì chọn lọc tất cả là được không cần chạy VBA
 
Upvote 0
Mục đích của quá trính ẩn các dòng nào đó là gì vậy bạn?;
Em muốn ẩn tự động dòng của nhiều sheet sau đó in hàng loạt sheet đó ra giấy bác ạ.
Tôi không mở file xls.
Đưa nguyên đoạn code của bạn lên đây xem thử.
Em gửi bác xem giúp ạ.
Mã:
Sub hide_unhide()

Dim curCell As String
curCell = ActiveCell.Address
    If hide Then
        Range("Hide").EntireRow.Hidden = False
    Else
       hideNodata
    End If
Range(curCell).Select
End Sub
Private Sub hideNodata()
Dim i As Integer
    With Range("Hide")
    For i = 1 To .Rows.Count
        If .Cells(i, 1).Value = 0 Then .Cells(i, 1).EntireRow.Hidden = True
    Next i
    End With
End Sub

Private Function hide() As Boolean
Dim i As Integer
Dim tmpblnHide As Boolean
tmpblnHide = False
    With Range("Hide")
    For i = 1 To .Rows.Count
        If .Cells(i, 1).EntireRow.Hidden = True Then
            tmpblnHide = True
            GoTo endhide
            Exit For
        End If
    Next i
    End With
 
endhide:
hide = tmpblnHide
End Function

B

File này bạn đặt lọc ở cột A, trong ô cột A bạn đặt điều kiện lọc nếu đúng hiện 1 nếu không hiện 0, cho ký tự cột A là màu trắng, Khi nào cần in bạn chỉ cần lọc bỏ số 0 đi là được, khi cần hiện lại thì chọn lọc tất cả là được không cần chạy VBA
Đúng rồi bác ạ. Tuy nhiên em thực hiện cho nhiều sheet cho nên ở sheet nhập dữ liệu đầu tiên em sẽ có có nút chạy VBA ẩn dòng cho tất các các sheet đó, sau đó tự động in ra giấy các sheet đó. Việc dùng tay vào từng sheet để lọc bỏ số 0 đi gây tốn thời gian nên e muốn dùng VBA ạ.
 
Upvote 0
Đúng rồi bác ạ. Tuy nhiên em thực hiện cho nhiều sheet cho nên ở sheet nhập dữ liệu đầu tiên em sẽ có có nút chạy VBA ẩn dòng cho tất các các sheet đó, sau đó tự động in ra giấy các sheet đó. Việc dùng tay vào từng sheet để lọc bỏ số 0 đi gây tốn thời gian nên e muốn dùng VBA ạ
Bạn đặt điều kiện ở cột A cho tất cả các sheet cần lọc, Tạo một VBA thủ tục để lọc cho tất cả các cột A ở các sheet đó và in thì vẫn sẽ nhanh hơn là dùng vba lọc cho từng dòng
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn đặt điều kiện ở cột A cho tất cả các sheet cần lọc, Tạo một VBA thủ tục để lọc cho tất cả các cột A ở các sheet đó và in thì vẫn sẽ nhanh hơn là dùng vba lọc cho từng dòng
Cám ơn gợi ý của bác. Nhưng mà em là như vậy thì sẽ hiện tất cả những dòng mà e cố tình ẩn đi (ko đặt điều kiện cho các dòng đó). Những dòng đó chỉ dùng cho 1 số trường hợp đặc biệt. Nên em dùng code VBA lọc theo từng mảng mình quy định ạ.
 
Upvote 0
Cám ơn gợi ý của bác. Nhưng mà em là như vậy thì sẽ hiện tất cả những dòng mà e cố tình ẩn đi (ko đặt điều kiện cho các dòng đó). Những dòng đó chỉ dùng cho 1 số trường hợp đặc biệt. Nên em dùng code VBA lọc theo từng mảng mình quy định ạ.
mình cũng là thành viên mới, không có nhiều kinh nghiệm, theo suy nghĩ của mình, bạn làm theo ý tưởng bác adua29 là đuợc mà, còn dòng nào bạn cố tình ẩn , bạn có thể thêm 1 điều kiện lọc khác( có thể thêm điều kiện là xyz gì đó, ngoài số 0 và 1, giờ cột a có : 0, 1 và xyz)
 
Upvote 0
Em chào các bác ạ,
Em có 1 file excel có VBA ẩn hiện dòng theo điều kiện. Tuy nhiên mỗi lần chạy VBA mất khá nhiều thời gian. Công việc thì cần tốn ít thời gian trong khi mỗi lần chạy VBA ẩn hiện dòng là tất cả các file excel sẽ bị treo theo nên chỉ còn cách ngồi nhìn nó chạy xong, Khá là ức chế các bác ạ.
Em có đính kèm dưới bài 1 file excel tương tự. Nhờ các bác giúp em điều chỉnh code hoặc có một đoạn code khác sao cho có thể rút bớt thời gian chạy VBA với ạ.
Xin cám ơn các bác nhiều ạ.
Mình viết code cho bạn rồi, bạn bỏ chữ [HEPL] trên tiêu đề đi (Do sai Nội quy), mình sẽ gửi cho bạn.
 
Upvote 0
Web KT

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

Back
Top Bottom