Tự động ẩn những dòng không có dữ liệu

  • Thread starter Thread starter quandrc
  • Ngày gửi Ngày gửi
Liên hệ QC

quandrc

Thành viên thường trực
Tham gia
26/3/09
Bài viết
235
Được thích
233
Cho em hỏi bác nào có cách ẩn những dòng trong excel không chưa giá trị. còn khi nào có giá trị sẻ tự động hiện ra dòng đó. em xin cám ơn trước
 
Mình nghĩ là không có cách nào tự động được hoàn toàn, có lẽ bán tự động bằng Auto filter với tùy chọn nonblanks thôi !
 
Bạn thử dòng code sau:(Giả sử cột B từ dòng B3:B200 nếu trống thì ẩn đi)
Mã:
Sub an()
[B3:B200].SpecialCells(4).EntireRow.Hidden = True
End Sub
Thân
 
Bạn thử dòng code sau:(Giả sử cột B từ dòng B3:B200 nếu trống thì ẩn đi)
Mã:
Sub an()
[B3:B200].SpecialCells(4).EntireRow.Hidden = True
End Sub
Thân
Về lý thuyế thì đã ẩn là phải ẩn cả cột hoặc ẩn cả dòng, làm sao ẩn được cột từ B3:B200?
Em mới học về Excel, anh có thể giải thích hộ em cái SpecialCells(4). nó có tác dụng là gì ko ạ? Số 4 ở đây nghĩa là gì?
Rất cảm ơn.
 
Bạn thử dòng code sau:(Giả sử cột B từ dòng B3:B200 nếu trống thì ẩn đi)
Mã:
Sub an()
[B3:B200].SpecialCells(4).EntireRow.Hidden = True
End Sub
Thân
Khi muốn ẩn tự động có nghĩa là trong vùng dữ liệu có công thức, khi dữ liệu nguồn thay đổi thì bảng tính sẽ thay đổi nên mới có chuyện ẩn tự động các dòng trống. Mà nếu có công thức thì sử dụng SpecialCells(4) sẽ không có tác dụng. Việc ẩn tự động còn phải dựa vào cấu trúc từng bảng dữ liệu khác nhau nữa.
 
Về lý thuyế thì đã ẩn là phải ẩn cả cột hoặc ẩn cả dòng, làm sao ẩn được cột từ B3:B200?
Em mới học về Excel, anh có thể giải thích hộ em cái SpecialCells(4). nó có tác dụng là gì ko ạ? Số 4 ở đây nghĩa là gì?
Rất cảm ơn.
Cái này là tìm trong vùng B3:B200, ô nào trống thì ẩn dòng chứa ô đó chứ không phải ẩn vùng B2:B200 đâu bạn.
 
Khi muốn ẩn tự động có nghĩa là trong vùng dữ liệu có công thức, khi dữ liệu nguồn thay đổi thì bảng tính sẽ thay đổi nên mới có chuyện ẩn tự động các dòng trống. Mà nếu có công thức thì sử dụng SpecialCells(4) sẽ không có tác dụng. Việc ẩn tự động còn phải dựa vào cấu trúc từng bảng dữ liệu khác nhau nữa.
Nếu vậy thì bạn có thể dùng đoạn code sau:
Mã:
Sub AnDong()
On Error Resume Next
Application.ScreenUpdating = False
Dim i As Integer
Dim RStart As Range
Dim REnd As Range
Set RStart = Range("B3")
Set REnd = Sheets("SHEET1").Range("B200").End(xlUp).Offset(0, 3)
Range(RStart, REnd).Select
With Selection
.EntireRow.Hidden = False
For i = 1 To .Rows.Count
If WorksheetFunction.CountBlank(.Rows(i)) = 4 Then
.Rows(i).EntireRow.Hidden = True
End If
Next i
End With
Set RStart = Nothing
Set REnd = Nothing
Range("A1").Select
Application.ScreenUpdating = True
End Sub
 
Lần chỉnh sửa cuối:
Nếu vậy thì bạn có thể dùng đoạn code sau:
Mã:
Sub AnDong()
On Error Resume Next
Application.ScreenUpdating = False
Dim i As Integer
Dim RStart As Range
Dim REnd As Range
Set RStart = Range("B3")
Set REnd = Sheets("SHEET1").Range("B200").End(xlUp).Offset(0, 3)
Range(RStart, REnd).Select
With Selection
.EntireRow.Hidden = False
For i = 1 To .Rows.Count
If WorksheetFunction.CountBlank(.Rows(i)) = 4 Then
.Rows(i).EntireRow.Hidden = True
End If
Next i
End With
Set RStart = Nothing
Set REnd = Nothing
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Cho dù dử liệu là công thức thì cũng chẳng ai dại gì dùng For --> Với vài ngàn dòng dử liệu, bạn For đến bao giờ mới xong!
Trong hầu hết các trường hợp, dù có công thức hay không thì dùng AutoFilter là ăn chắc
 
Nếu vậy thì bạn có thể dùng đoạn code sau:
Mã:
Sub AnDong()
On Error Resume Next
Application.ScreenUpdating = False
Dim i As Integer
Dim RStart As Range
Dim REnd As Range
Set RStart = Range("B3")
Set REnd = Sheets("SHEET1").Range("B200").End(xlUp).Offset(0, 3)
Range(RStart, REnd).Select
With Selection
.EntireRow.Hidden = False
For i = 1 To .Rows.Count
If WorksheetFunction.CountBlank(.Rows(i)) = 4 Then
.Rows(i).EntireRow.Hidden = True
End If
Next i
End With
Set RStart = Nothing
Set REnd = Nothing
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Theo mình thì không cần thiết phải rắc rối như vậy. Ai lại làm có 1 tí mà chép cả công thức như thế không khác jì đi mua việc.:-=
 
Web KT

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

Back
Top Bottom