Làm việc với các dòng bị ẩn trong bảng khi có chế độ filter (3 người xem)

Liên hệ QC

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

Nguyễn Hồng Quang

Thành viên GPE Hà Nội
Tham gia
8/6/07
Bài viết
1,203
Được thích
877
Giới tính
Nam
Nghề nghiệp
Kế toán
Dear all
Mình gặp 1 vấn đề như sau:
Trong công việc Mình thường nhận được 1 mail bảng tính cỡ 500 dòng. Trong bảng tính có 1 số dòng bị ẩn mà mình ko biết trước được vì người lập ko comment. Các dòng bị ẩn này thường ko cần thiết phải show ra.
Vân đề xảy ra là:
Khi mình đặt chế độ filter cho bảng tính này, sau đó thực hiện vài thao tác lọc để kiểm tra, đánh dấu, tính toán thì các dòng bị ẩn ban đầu cũng hiện ra. Vì bảng tính rất dài nên mình ko thể rà soát để ẩn lại các dòng này, hoặc ấn Ctrl+ Z được vì sẽ mất các kết quả lọc, đánh dấu v...v
Trước đây để khắc phục tình trạng này, trước khi đặt chế độ filter mình thường phải mở các dòng bị ẩn sau đó bôi màu đặc trưng rồi ẩn lại, rồi mới đặt filter, để sau này khi chạy chế độ filter sẽ có thể ẩn lại bằng cách lọc theo "color" tuy nhiên làm vậy thường lâu và mất thời gian
Mong mọi người giúp đỡ để khi trước khi mình thực hiện các thao tác lọc , excel tự động đánh dấu các dòng bị ẩn. Áp dụng với các bảng tính có số lượng dòng lớn (vài trăm dòng)
Mình gửi có kèm file (file này đã rút gọn lại chỉ có 37 dòng và mình đã cố tình ẩn ngẫu nhiên dòng 5-9, dòng 24-27)
 

File đính kèm

Su dung Alt+; de copy tach du lieu an va cua ban ra 2 sheet. Lam xong gom lai 1 sheet.
 
Bạn vào vba / chèn 1 module rồi chép đoạn sau vào chạy thử xem:
PHP:
Sub mark_hidden_rows()
Dim i&, n&
n = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
With ActiveSheet
    For i = 1 To n
        If Rows(i).Hidden = True Then
            Cells(i, 1).Interior.Color = 65535 'yellow color
            Cells(i, 2).Interior.Color = 65535
            Cells(i, 3).Interior.Color = 65535
        End If
    Next
End With
End Sub
 
Thank Bạn Befaint . Nhờ bạn chỉ thêm cho mình 1 module nữa là điền số "1" đối với những dòng hiện ra và điền số "0" đói với những dòng ẩn vào cột bên cạnh cột cuối của bảng . Như vậy mình sẽ lọc theo số 1 hoặc 0
 
Thank Bạn Befaint . Nhờ bạn chỉ thêm cho mình 1 module nữa là điền số "1" đối với những dòng hiện ra và điền số "0" đói với những dòng ẩn vào cột bên cạnh cột cuối của bảng . Như vậy mình sẽ lọc theo số 1 hoặc 0
Gửi bạn:
PHP:
Sub mark_1_0()
Dim i&, n&
n = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
With ActiveSheet
    For i = 1 To n
        If Rows(i).Hidden = True Then
            Cells(i, 4) = 0
        Else
            Cells(i, 4) = 1
        End If
    Next
End With
End Sub
 
Web KT

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

Back
Top Bottom