ẨN DÒNG TỰ ĐỘNG KHI KHÔNG CÓ DỮ LIỆU

Liên hệ QC

LamNA

Thành viên tích cực
Tham gia
3/6/14
Bài viết
897
Được thích
720
Giới tính
Nam
Nghề nghiệp
Quản Lý Cửa Hàng
Chào anh chị GPE
Nhờ anh chị hỗ trợ code tự động ẩn dòng (không dùng nút lệnh) như file đính kèm.
Điều kiện:
Tính từ dòng "A18:A2017" cho Sheet1, Sheet2,, Sheet3 ,khi cột "A" không có dữ liệu thì sẽ ẩn đi dòng đó
Em cám ơn
 

File đính kèm

  • ex_hide_row.xlsb
    15.7 KB · Đọc: 17
Chào anh chị GPE
Nhờ anh chị hỗ trợ code tự động ẩn dòng (không dùng nút lệnh) như file đính kèm.
Điều kiện:
Tính từ dòng "A18:A2017" cho Sheet1, Sheet2,, Sheet3 ,khi cột "A" không có dữ liệu thì sẽ ẩn đi dòng đó
Em cám ơn
Không dùng nút lệnh thì "khi nào thì ẩn"?
 
Upvote 0
Chào anh chị GPE
Nhờ anh chị hỗ trợ code tự động ẩn dòng (không dùng nút lệnh) như file đính kèm.
Điều kiện:
Tính từ dòng "A18:A2017" cho Sheet1, Sheet2,, Sheet3 ,khi cột "A" không có dữ liệu thì sẽ ẩn đi dòng đó
Em cám ơn
Bạn thử:
PHP:
Sub abc()
    Dim ws As Worksheet
        For Each ws In Worksheets
        ws.Activate
        For i = 18 To 2017
         If Range("A" & i) = 0 Then Rows(i).EntireRow.Hidden = True
      Next
    Next
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Mục đích của bạn là gì mình không hiểu lắm, sao lại không được dùng autofilter?
 
Upvote 0
Không dùng nút lệnh thì "khi nào thì ẩn"?
Dạ khi từ cột A18 đến A2017 không có dữ liệu thì code sẽ tự động ẩn giống như báo cáo động.
Do có nhiều sheet thao tác nhiều lần nên em tưởng không cần nút lệnh sẽ tiện hơn.
Em cám ơn
 
Upvote 0
Bạn thử:
PHP:
Sub abc()
    Dim ws As Worksheet
    Application.DisplayFullScreen = True
    For Each ws In Worksheets
        ws.Activate
        For i = 18 To 2017
         If Range("A" & i) = 0 Then Rows(i).EntireRow.Hidden = True
      Next
    Next
End Sub
Dạ em cám ơn anh, anh cho em hỏi thêm trong trường hợp mình muốn chỉ định "Sheet" sẽ chạy code ẩn dòng thì mình thêm điều kiện như thế nào anh.
em cám ơn
 
Upvote 0
Em tìm ra code thỏa mãn như ý muốn, khi gán vào sheet muốn ẩn nó sẽ chạy tự động, có điều do chạy ẩn tới dòng A2017 nên nó hơi lag. hihi

Mã:
Private Sub Worksheet_Activate()
Dim i As Long
Application.ScreenUpdating = False
For i = 18 To 2017
If Cells(i, 1).Value = 0 And Cells(i, 1).Value = 0 Then
Rows(i).Hidden = True
End If
Next i
Application.ScreenUpdating = True
End Sub
 
Upvote 0
Bạn thử:
PHP:
Sub abc()
    Dim ws As Worksheet
    Application.DisplayFullScreen = True
    For Each ws In Worksheets
        ws.Activate
        For i = 18 To 2017
         If Range("A" & i) = 0 Then Rows(i).EntireRow.Hidden = True
      Next
    Next
End Sub
Filter dữ liệu khác rổng là được rồi, sao phải For Next
Mã:
Range("A17:A5000").AutoFilter 1, "<>", VisibleDropDown:=False
 
Upvote 0
Filter dữ liệu khác rổng là được rồi, sao phải For Next
Mã:
Range("A17:A5000").AutoFilter 1, "<>", VisibleDropDown:=False
Dạ code chạy nhẹ đi rất nhiều, thầy cho em hỏi thêm nếu khi chạy ẩn khi em thêm dữ liệu vào thì nó tự động hiện dòng đó ra, hiện tại code chạy chỉ 1 chiều ẩn. Vì cột A em có liên kết nhập liệu ở Sheet khác
Em cám ơn
 
Upvote 0
Nếu liên kết với sheets khác thì lấy code của bác NDU thêm vào sự kiện Worksheet_Activate là được rồi
Private Sub Worksheet_Activate()
Range("A17:A5000").AutoFilter 1, "<>", VisibleDropDown:=False
End Sub
 
Upvote 0
Web KT
Back
Top Bottom