Làm sao để biết dòng nào bị hide trong sheet?

Liên hệ QC

ladykiller81

Thành viên chính thức
Tham gia
13/7/08
Bài viết
69
Được thích
3
Thân chào cả nhà "giaiphapexcel" cho e hỏi là làm cách nào để biết dòng nào đang bị hide trong 1 sheet. Xin cảm ơn!
 
PHP:
Private Sub Worksheet_Activate()

Dim rw As Range
    For Each rw In Rows("1:65536")
    If rw.EntireRow.Hidden = True Then
    MsgBox " row bi an" & rw.Address
    With rw
    .EntireRow.Hidden = False
    .Interior.ColorIndex = 6
    End With
    End If
    Next rw
End Sub
Mình dùng sự kiện Active sheet, bạn chuột phải vào tên sheet muốn check xem có row ẩn hay không? chọn view code và paste đoạn code trên vô
Sau đó Alt + Q để thoát khỏi cửa sổ VBE, ra ngoài chọn tạm một sheet khác --> quay lại sheet muốn check

Mình mới học VBA, tập tành tí code. Mình thấy rất chuối nhưng code chạy được bạn ạh
Bạn chạy tạm nhé
 
Lần chỉnh sửa cuối:
Cảm ơn bạn nhiều nhe! mình đã làm đc rồi.
 
hu hu, e mới chập chững học, nên không biết "chọn view code" ở chỗ nào, bác ST-lu chỉ e với, e cám ơn!
 
hu hu, e mới chập chững học, nên không biết "chọn view code" ở chỗ nào, bác ST-lu chỉ e với, e cám ơn!
Click chuột phải và Sheet tab, sẽ thấy View code, như hình này đây:
----------------------------------------
attachment.php

----------------------------------------
Nói với chủ Topic: Để biết dòng nào đang ẩn chẳng phải là điều khó khăn gì, có điều là "biết" để làm cái gì mới quan trọng... Chẳng lẽ "biết chơi" thôi sao?
 

File đính kèm

  • untitled.JPG
    untitled.JPG
    13.1 KB · Đọc: 129
Em cũng thử nghiệm hiện các dòng lên được rồi! Hihi. Nhưng em có 3 thắc mắc:
1/ Em muốn hiện những "cột ẩn" thì em sửa đoạn code trên: Row thàng column; rw thàng cl. Anh có thể nào ghép 2 đoạn code trên thàng 1 đoạn code được không anh?
2/ Nếu em thích các cột ẩn hiện lên là màu xanh thì em thay đổi con số 6 thàng con số 8. Vậy cho em hỏi: Làm cách nào em tìm được một bảng danh sách: số 6 -> vàng; số 8 -> màu xanh ...
3/ Các dòng màu vàng (xanh) khi đã hiện lên em không biết cách làm mất màu vàng của các dòng đó. Em xóa đoạn code màu vẫn không mất. Vậy em phải làm sao?

Em cảm ơn anh nhiều!
 
PHP:
Private Sub Worksheet_Activate()
Dim rw As Range
2    For Each rw In Rows("1:65536")
    If rw.EntireRow.Hidden = True Then
4    MsgBox " row bi an" & rw.Address
    With rw
6    .EntireRow.Hidden = False
    .Interior.ColorIndex = 6
8    End With
    End If
    Next rw
End Sub
Mình dùng sự kiện Active sheet,

Mình mới học VBA, tập tành tí code. Mình thấy rất chuối nhưng code chạy được bạn ạh
Bạn chạy tạm nhé

Xin góp vài ý như sau:
(*) Không nên xài sự kiện Active sheet, chỉ cần dùng 1 macro bình thường. Khi nào cần kiểm hàng ẩn của sheet nào đó, ta chọn sheet đó & cho chạy macro bằng 1 trong các cách thông dụng, như (tổ hợp phím nóng đã gán cho macro, từ menu Tool, . . )
(*) Dòng lệnh 2 sẽ làm cho macro của bạn chạy gấp 255 lần lâu hơn so với dòng lệnh như vầy (Với E2K):
Mã:
  For Each rw In Range("A1:A65536")
:-= )(&&@@ !$@!!
To HangSf2:

Về màu sắc trong excel, bạn tham khảo tại đây:
 
-------------
MOD xóa giúp em bài này, double post
 
Lần chỉnh sửa cuối:
Em cũng thử nghiệm hiện các dòng lên được rồi! Hihi. Nhưng em có 3 thắc mắc:
1/ Em muốn hiện những "cột ẩn" thì em sửa đoạn code trên: Row thàng column; rw thàng cl. Anh có thể nào ghép 2 đoạn code trên thàng 1 đoạn code được không anh?
2/ Nếu em thích các cột ẩn hiện lên là màu xanh thì em thay đổi con số 6 thàng con số 8. Vậy cho em hỏi: Làm cách nào em tìm được một bảng danh sách: số 6 -> vàng; số 8 -> màu xanh ...
3/ Các dòng màu vàng (xanh) khi đã hiện lên em không biết cách làm mất màu vàng của các dòng đó. Em xóa đoạn code màu vẫn không mất. Vậy em phải làm sao?

Em cảm ơn anh nhiều!

Em còn rất kèm VBA nên viết tạm code sau, bác chọ vào module (có thể vẽ thêm một cái Button từ thanh công cụ form --> assign macro nhé

Code chậm nhưng vẫn dùng được

PHP:
Sub Showhidden()
'
' Macro1 Macro
' Macro recorded 20-05-2009 by c
'

'
Activesheet.select
Dim rw As Range
Dim cl As Range
For Each rw In Range("A1:A65536")
    If rw.EntireRow.Hidden = True Then
    MsgBox "Hidden row is " & rw.Address
    With rw
    .EntireRow.Hidden = False
    .Interior.ColorIndex = 6
    End With
    Else
        If rw.Interior.ColorIndex = 6 Then
        rw.Interior.ColorIndex = xlNone
        End If
    End If
    Next rw
    ' Code sau de kiem tra cot an
    For Each cl In Columns("A:IV")
    If cl.EntireColumn.Hidden = True Then
    MsgBox "Hidden column is " & cl.Address
   
    With cl
    .EntireColumn.Hidden = False
    .Interior.ColorIndex = 8
    End With
    Else
        If cl.Interior.ColorIndex = 8 Then
   
        cl.Interior.ColorIndex = xlNone
        End If
    End If

    Next cl
End Sub
 
Lần chỉnh sửa cuối:
Chi HYen17 ơi, em vẫn chưa biết làm cách nào để các dòng, cột ẩn đã hiện lên bị mất màu, vàng hoặc xanh (Trong trường hợp em cùng đoạn code của anh ST-Lu!).

Em cảm ơn chị.

(*) Không phải chị, mà là lão ông!

(*) Thật ra Cells nào cũng có màu cả, không màu là màu trắng đó!
Hãy tìm hiểu xem chỉ số của màu trắng là số nào đó, nha!:-=

Chúc thành công!
 
2/ Nếu em thích các cột ẩn hiện lên là màu xanh thì em thay đổi con số 6 thàng con số 8. Vậy cho em hỏi: Làm cách nào em tìm được một bảng danh sách: số 6 -> vàng; số 8 -> màu xanh ...
!
Gữi bạn 1 thí nghiệm đơn giản để biết màu nào tương ứng với mã nào:
PHP:
Sub Test()
  Dim i As Long
  For i = 1 To 56
    Cells(i + 1, 1).Interior.ColorIndex = i
    Cells(i + 1, 2) = i
  Next i
End Sub
 

File đính kèm

  • Test.xls
    18 KB · Đọc: 7
Web KT
Back
Top Bottom