Lọc ẩn dòng trống tự động bằng Autofilter + VBA (1 người xem)

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

Duong gia

Thành viên thường trực
Tham gia
15/1/07
Bài viết
352
Được thích
118
Lọc ẩn dòng trống tự động bằng Autofilter + VBA với code : Selection.AutoFilter Field:=1, Criteria1:="1" là OK, còn khi muốn bung hết ra thì làm sao mong các anh chị giúp đỡ. (Xin mở file đính kèm)
 

File đính kèm

Lần chỉnh sửa cuối:
Bạ xem file đính kèm nhé.
 

File đính kèm

Upvote 0
làm thế nào để tạo biểu tượng ô nổi trên nền file excel, ví dụ ô "lọc", "không lọc" trong fileAutofilter + VBA.xls
 
Upvote 0
làm thế nào để tạo biểu tượng ô nổi trên nền file excel, ví dụ ô "lọc", "không lọc" trong fileAutofilter + VBA.xls

Đây là hai nút commandbutton được tạo từ thanh Control Toolbox (click chuột phải lên thanh menu -->chọn Control Toolbox).
File1.png

05-09-20084-49-32PM.png
 
Upvote 0
Sau khi tạo xong biểu tượng. Bạn nhấp đúp chuột lên nó. Rồi chép đoạn code này vào.
Mã:
Private Sub CommandButton1_Click() If CommandButton1.Caption = "Loc" Then     CommandButton1.Caption = "Khong Loc" Else CommandButton1.Caption = "Loc" End If End Sub
Sau khi chép xong, bạn nhấp vào cây thước êke để tắt nó đi. Và thử nhấp chuột lên nút lệnh xem! Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Với bài toán trên sao ta không tận dụng cột STT làm điều kiện lọc nhỉ? Cần gì AutoFilter? Cần gì cột phụ L?
Tôi sẽ làm như sau:
1> Đặt công thức tại A10:
A10 =IF(SUM(D10:I10)>0,MAX($A$9:A9)+1,"")
Kéo fill công thức đến A28
2> Tạo 1 code duy nhất để Hide và Unhide
PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  Range("A10:A28").SpecialCells(3, 22).EntireRow.Hidden = DK
  Cmd.Caption = Choose(-1 * DK + 1, "Loc", "Khong Loc")
End Sub
Xem file
 

File đính kèm

Upvote 0
Với bài toán trên sao ta không tận dụng cột STT làm điều kiện lọc nhỉ? Cần gì AutoFilter? Cần gì cột phụ L?
Tôi sẽ làm như sau:
1> Đặt công thức tại A10:
Kéo fill công thức đến A28
2> Tạo 1 code duy nhất để Hide và Unhide
PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  Range("A10:A28").SpecialCells(3, 22).EntireRow.Hidden = DK
  Cmd.Caption = Choose(-1 * DK + 1, "Loc", "Khong Loc")
End Sub
Xem file
Em chưa hiểu tham số của SpecialCells(3, 22). Anh có thể giải thích giúp em được không ạ? Em cảm ơn!
 
Upvote 0
Em chưa hiểu tham số của SpecialCells(3, 22). Anh có thể giải thích giúp em được không ạ? Em cảm ơn!

expression.SpecialCells(Type, Value)

Type : XlCellType can be one of these XlCellType constants :
PHP:
xlCellTypeAllFormatConditions. Cells of any format 
xlCellTypeAllValidation. Cells having validation criteria 
xlCellTypeBlanks. Empty cells 
xlCellTypeComments. Cells containing notes 
xlCellTypeConstants. Cells containing constants 
xlCellTypeFormulas. Cells containing formulas 
xlCellTypeLastCell. The last cell in the used range 
xlCellTypeSameFormatConditions. Cells having the same format 
xlCellTypeSameValidation. Cells having the same validation criteria 
xlCellTypeVisible. All visible cells

Value : XlSpecialCellsValue
PHP:
xlErrors :16
xlLogical : 4
xlNumbers : 1
xlTextValues : 2

Các con số ứng với các giá trị nêu trên. Nếu số lớn hơn thì nó chính là tổng của các giá trị đó. Tức là vừa có giá trị này, vừa gồm cả giá trị khác nữa. Nếu mình làm thì mình sẽ ghi rõ các giá trị ra thay vì ghi số, để người khác dễ hiểu và ngay cả mình nhiều khi còn không biết nó là cái gì. Khi nó thì nhờ chức năng Help và Record lấy.

bạn xem thêm trong help nha.
 
Lần chỉnh sửa cuối:
Upvote 0
nhờ diễn đàn giúp đỡ

Chân thành cảm ơn bác ndu96081631 em đã download file của bàc về để học hỏi. nhưng sao cái Excel trên máy của em báo lổi (em gửi kèm thông báo lỗi), mong bác và diễn đàn Excel chỉ giúp.
 
Upvote 0
Chân thành cảm ơn bác ndu96081631 em đã download file của bàc về để học hỏi. nhưng sao cái Excel trên máy của em báo lổi (em gửi kèm thông báo lỗi), mong bác và diễn đàn Excel chỉ giúp.

Khi tải file về, bạn phải chọn là Save (nếu chọn Open đôi khi Macro không chạy). File có chứa Macro, bạn muốn chạy File thì phải chọn Macro Securities ở chế độ Low (Tool > Macro > Macro Securities > Low).

Thân ái.
 
Upvote 0
Với bài toán trên sao ta không tận dụng cột STT làm điều kiện lọc nhỉ? Cần gì AutoFilter? Cần gì cột phụ L?
Tôi sẽ làm như sau:
1> Đặt công thức tại A10:
Kéo fill công thức đến A28
2> Tạo 1 code duy nhất để Hide và Unhide
PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  Range("A10:A28").SpecialCells(3, 22).EntireRow.Hidden = DK
  Cmd.Caption = Choose(-1 * DK + 1, "Loc", "Khong Loc")
End Sub
Xem file



Đúng là mỗi Thầy có mỗi kiểu hay riêng biệt. Nếu như cách của Thầy NDU thay vì EntireRow.Hidden thì chọn AutoFilter thì muốn hide hay unhide cũng không được, vã lại, muốn định dạng hoặc kéo cho row rộng một tí thì những row bị ẩn cũng không vì thế mà thay đổi.
(Em mượn File của Thầy chút nhé! Cám ơn Thầy).

PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  With Range("$A$8:$A$28")
    If DK Then .AutoFilter Field:=1, Criteria1:="<>" Else .AutoFilter
  End With
  Cmd.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub

(đã bỏ thuộc tính Print Object cho nút lệnh "Lọc")
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chao cac anh chi va cac ban,

Hien tai, minh fai lam file time sheet cho 100 nhan vien va co the nhieu hon nua. Moi nhan vien se fai co 10 dong de tong hop thong tin cham cong cac the loai. Neu lam thu cong chen dong thi se rat lau. Cac anh chi va cac ban co cach nao giup tu dong chen 10 dong them vao moi hang trong danh sach 100 nhan vien do khong a?

Cam on cac anh chi.
 
Upvote 0
Đúng là mỗi Thầy có mỗi kiểu hay riêng biệt. Nếu như cách của Thầy NDU thay vì EntireRow.Hidden thì chọn AutoFilter thì muốn hide hay unhide cũng không được, vã lại, muốn định dạng hoặc kéo cho row rộng một tí thì những row bị ẩn cũng không vì thế mà thay đổi.
(Em mượn File của Thầy chút nhé! Cám ơn Thầy).

PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  With Range("$A$7:$A$28")
    If DK Then .AutoFilter Field:=1, Criteria1:="<>" Else .AutoFilter
  End With
  Cmd.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub
(đã bỏ thuộc tính Print Object cho nút lệnh "Lọc")
Viết thế này sẽ "đẹp" hơn:
PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  With Range("$A$8:$A$28")
    If DK Then .AutoFilter 1, "<>", , , False Else .AutoFilter
  End With
  Cmd.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub
Ẩn luôn mũi tên AutoFilter
 
Upvote 0
Chẳng hiểu tại sao, khi dùng AutoFilter, mình đã đã chọn địa chỉ quá rõ ràng rồi (như $A$7:$A$28) mà cứ thấy hàng tiếp theo liền nó là nó cứ Filter! Các Thầy có cách làm cho nó đi đúng quỹ đạo không?
 
Upvote 0
Chẳng hiểu tại sao, khi dùng AutoFilter, mình đã đã chọn địa chỉ quá rõ ràng rồi (như $A$7:$A$28) mà cứ thấy hàng tiếp theo liền nó là nó cứ Filter!..

Mình nghĩ khi dùng AutoFilter thì Excel sẽ áp dụng cho cả cột.

Với số lượng dòng ít, có địa chỉ rõ ràng và bên dưới còn dữ liệu không cần lọc thì theo mình nên dùng vòng lặp
Mã:
Sub Cmd_Click()
   DK = Cmd.Caption
   For i = 1 To 22
      If [A6].Offset(i, ).Value = 0 And DK = "Loc" Then [A6].Offset(i, ).EntireRow.Hidden = True
      If DK = "Khong Loc" Then [A6].Offset(i, ).EntireRow.Hidden = False
   Next i
   Cmd.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub
 
Upvote 0
Mình nghĩ khi dùng AutoFilter thì Excel sẽ áp dụng cho cả cột.

Với số lượng dòng ít, có địa chỉ rõ ràng và bên dưới còn dữ liệu không cần lọc thì theo mình nên dùng vòng lặp
Mã:
Sub Cmd_Click()
   DK = Cmd.Caption
   For i = 1 To 22
      If [A6].Offset(i, ).Value = 0 And DK = "Loc" Then [A6].Offset(i, ).EntireRow.Hidden = True
      If DK = "Khong Loc" Then [A6].Offset(i, ).EntireRow.Hidden = False
   Next i
   Cmd.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub

Cám ơn bạn, cái mình cần là AutoFilter, chứ không phải EntireRow.Hidden.
Bởi vì nếu dùng EntireRow.Hidden thì Thầy NDU đã làm rất sáng tỏ rồi không cần vòng lặp:
Mã:
Sub Cmd2_Click()
  DK = Cmd.Caption = "Loc"
  Range("A10:A28").SpecialCells(3, 22).EntireRow.Hidden = DK
  Cmd.Caption = Choose(-1 * DK + 1, "Loc", "Khong Loc")
End Sub

À. Mình cũng thử copy công thức của bạn máy lại báo lỗi nhỉ?
AutoFilter không dùng cho cả cột đâu bạn! Hình như nếu có địa chỉ rõ ràng, nó sẽ xác định dòng liền kề có giá trị hay không, nếu có, nó thêm vào, nếu không nó sẽ bỏ qua tất cả những cái bên dưới dòng trống liền kề bên dưới nó.
 
Lần chỉnh sửa cuối:
Upvote 0
Thầy NDU cho em hỏi, trước khi nhúng VBA code như thầy đã viết thì tạo nút "Lọc" để code đó thực thị được với nút đó, e đã thử insert button nhưng không được, điều kiện của em là ẩn những dòng mà cột đó = 0 hoặc bằng ký tự trắng, cảm ơn thầy !!!
 
Upvote 0
Vừa ẩn dòng vừa ẩn cột

Viết thế này sẽ "đẹp" hơn:
PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  With Range("$A$8:$A$28")
    If DK Then .AutoFilter 1, "<>", , , False Else .AutoFilter
  End With
  Cmd.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub
Ẩn luôn mũi tên AutoFilter
Chào anh & các bạn thành viên!
Trong bài này, nếu ta cùng lúc ẩn thêm cột ( mặc dù cột có số liệu, ví dụ cột B) thì sửa code trên như thế nào?
Xin cảm ơn!
 
Upvote 0
Chào anh & các bạn thành viên!
Trong bài này, nếu ta cùng lúc ẩn thêm cột ( mặc dù cột có số liệu, ví dụ cột B) thì sửa code trên như thế nào?
Xin cảm ơn!

Thì bạn làm như vầy đi:

PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  With Range("$A$8:$A$28")
    If DK Then
        .AutoFilter 1, "<>", , , False
        Range("B:B").EntireColumn.Hidden = True
    Else
        .AutoFilter
        Range("B:B").EntireColumn.Hidden = False
    End If
  End With
  Cmd.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub
 
Upvote 0
Code sử dụng cho ở nhiều Sheet?

Thì bạn làm như vầy đi:

PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  With Range("$A$8:$A$28")
    If DK Then
        .AutoFilter 1, "<>", , , False
        Range("B:B").EntireColumn.Hidden = True
    Else
        .AutoFilter
        Range("B:B").EntireColumn.Hidden = False
    End If
  End With
  Cmd.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub
Cảm ơn bạn minhthien321 đã giúp đỡ
Tôi có thêm 01 vấn đề như thế này, trong 01 File có nhiều Sheet trong đó có 12 sheet là có cấu trúc tương đối đồng dạng, nếu áp dụng bài trên thì ta phải Copy code trên vào 12 Sheet và đồng thời tạo ra 12 nút "Cmd".
Bây giờ tôi muốn gom thành một đọan code để ở đâu đó và ta chỉ tạo 12 nút lệnh ở 12 sheet có được không bạn?
Xin cảm ơn
 
Upvote 0
Cảm ơn bạn minhthien321 đã giúp đỡ
Tôi có thêm 01 vấn đề như thế này, trong 01 File có nhiều Sheet trong đó có 12 sheet là có cấu trúc tương đối đồng dạng, nếu áp dụng bài trên thì ta phải Copy code trên vào 12 Sheet và đồng thời tạo ra 12 nút "Cmd".
Bây giờ tôi muốn gom thành một đọan code để ở đâu đó và ta chỉ tạo 12 nút lệnh ở 12 sheet có được không bạn?
Xin cảm ơn

Muốn sử dụng chung code bạn nên để sub trong module
Tạo một Button từ menu Forms của Excel ---> chuột phải vào Button gán vào Sub trên ---> Copy button vào các sheet khác.
Xem ví dụ:
 

File đính kèm

Upvote 0
Muốn sử dụng chung code bạn nên để sub trong module
Tạo một Button từ menu Forms của Excel ---> chuột phải vào Button gán vào Sub trên ---> Copy button vào các sheet khác.
Xem ví dụ:
Chào bạn thanhlanh!
Cách hướng dẫn của bạn nó báo lỗi Run-time error '424' Object required
Tôi gởi File nhờ bạn xem lại! cảm ơn.
 

File đính kèm

Upvote 0
Chào bạn thanhlanh!
Cách hướng dẫn của bạn nó báo lỗi Run-time error '424' Object required
Tôi gởi File nhờ bạn xem lại! cảm ơn.

Bạn xóa cái nút đó đi, và thay vào nút của Control Toolbox đó, sau đó đổi tên trong thuộc tính của nó là cmd
 
Upvote 0
Nếu bạn vẫn giữ nút lệnh đó, thì bạn phải sửa tên thành tên nào đó, trong trường hợp của file tôi gửi lên nút có tên là MinhThien321 và code chạy như sau:
PHP:
Sub LocDieuKien()
    With Application
        .ScreenUpdating = False: .EnableEvents = False: .Calculation = 3
        ActiveSheet.Shapes("MinhThien321").Select
        On Error Resume Next
        If Selection.Characters.Text = "Loc" Then
            Selection.Characters.Text = "Khong Loc"
            ActiveSheet.Range("$A$5:$A$28").AutoFilter 1, "<>", , , False
            ActiveSheet.Range("C:C").EntireColumn.Hidden = True
        Else
            Selection.Characters.Text = "Loc"
            ActiveSheet.Range("A1").AutoFilter
            ActiveSheet.Range("C:C").EntireColumn.Hidden = False
        End If
        ActiveSheet.Range("A1").Select
        .Calculation = 1: .EnableEvents = True: .ScreenUpdating = True
    End With
End Sub

Với thủ tục này, bạn chỉ cần copy cái nút lệnh qua sheet khác thì sheet đó cũng được thực hiện y chang sheet ban đầu, tiện lợi cho bạn.
 

File đính kèm

Upvote 0
Bạn xóa cái nút đó đi, và thay vào nút của Control Toolbox đó, sau đó đổi tên trong thuộc tính của nó là cmd
Gởi bạn minhthien321!
Trước đó mình đã thử cách này rồi: Vào Control Toolbox --> chọn Command Button, vẽ nó, rồi vào Properties, thay đổi (Name) thành cmd, nhưng nó vẫn điếc! (Code để trong Module)
 
Upvote 0
Gởi bạn minhthien321!
Trước đó mình đã thử cách này rồi: Vào Control Toolbox --> chọn Command Button, vẽ nó, rồi vào Properties, thay đổi (Name) thành cmd, nhưng nó vẫn điếc! (Code để trong Module)

Nó điếc là phải, bởi nút lệnh đó, thủ tục phải đặt trong sheet chứ không đặt trong module, nếu đặt ở module thì thủ tục trong sheet phải gọi thủ tục ở module ra làm việc, lưu ý: thủ tục trong module đó thay vì Cmd.Caption thì phải viết là ActiveSheet.Cmd.Caption
 
Upvote 0
Nếu bạn vẫn giữ nút lệnh đó, thì bạn phải sửa tên thành tên nào đó, trong trường hợp của file tôi gửi lên nút có tên là MinhThien321 và code chạy như sau:
Hic! Bạn chơi ĐỘC QUYỀN nha!
Tôi vẽ một Button ở Sheet mới, chọn nó rồi vào Name đặt tên là minhthien321, vào Assign Macro gán tên Sub vào là Ok!
Chúc bạn một ngày làm việc vui vẻ! Xin cảm ơn
 
Upvote 0
Hic! Bạn chơi ĐỘC QUYỀN nha!
Tôi vẽ một Button ở Sheet mới, chọn nó rồi vào Name đặt tên là minhthien321, vào Assign Macro gán tên Sub vào là Ok!
Chúc bạn một ngày làm việc vui vẻ! Xin cảm ơn

Bạn muốn đặt tên gì mà không được chứ bạn, sau đó sửa code lại theo tên bạn đặt thôi!
 
Upvote 0
Các bạn ơi,mình muốn cho đoạn code trên hoạt động theo cách:khi ta nhấp đôi chuột trái lần thứ nhất thì ẩn dòng trống (ẩn nút filter),khi nhấp đôi chuột lần hai thì hiện lại đầy đủ, thì phải sửa lại code như thế nào?,cảm ơn.
 
Upvote 0
Tôi nghĩ có thể dùng 1 biến public sau đó gắn thủ tục nếu click thì biến đó cộng 1
Khi thực hiện sub thì kiểm tra xem biến đó là chẵn hay lẻ, rồi thực hiện code theo điều kiện biến
Cách khác: sử dụng ToggleButton thì dễ hơn
(sao phải nháy đúp, nháy 1 lần không được hả bạn)
 
Upvote 0
Tôi nghĩ có thể dùng 1 biến public sau đó gắn thủ tục nếu click thì biến đó cộng 1
Khi thực hiện sub thì kiểm tra xem biến đó là chẵn hay lẻ, rồi thực hiện code theo điều kiện biến
Cách khác: sử dụng ToggleButton thì dễ hơn
(sao phải nháy đúp, nháy 1 lần không được hả bạn)
Cứ mỗi lần nhấn lại cộng 1 đơn vị, cái này có vẻ hơi "uổng", đó là chưa kể việc đóng rồi mở file sẽ làm code hoạt động không đúng. Mình cũng có thể vẽ 1 Checkbox (Checkbox1) và cho nó ẩn đi (đặt thuộc tính Visible=False), và thêm 1 câu lệnh ở đầu sub: Checkbox1=Not(Checkbox1), sau đó kiểm tra tình trạng của Checkbox1 và quyết định chạy code ra sao.
 
Upvote 0
Vậy em nghĩ dùng ToggleButton là hay hơn cả, chỉ cần 1 control không phải tạo biến phụ code đơn giản chỉ cần
ToggleButton1.Value = True Then........
(Mà bác nghiaphuc bây giờ ẩn hiện khó lường quá, thấy nick không sáng hihi)
 
Upvote 0
Xin lỗi đã trình bày chưa hết ý,ý của mình là ko dùng nút bấm gì cả, và thay vào đó là dùng nhắp đúp chuột trái vào bảng tính..
 
Upvote 0
Vậy bạn sử dụng thủ tục
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
Upvote 0
Xin lỗi đã trình bày chưa hết ý,ý của mình là ko dùng nút bấm gì cả, và thay vào đó là dùng nhắp đúp chuột trái vào bảng tính..
Vậy thì bạn sử dụng code có dạng như sau cho sheet cần áp dụng:
PHP:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    "Đoạn code cần đưa vào"
End Sub
 
Upvote 0
Minh cũng hay dùng code trên để bảo vệ bảng tính,nên muốn kết hợp với đoạn code ẩn dòng trống vào luôn (một công đôi việc)nhưng lại ko biết phải sửa lại đoạn code ẩn dòng trống lại như thế nào(vì đoạn code ẩn dòng trống được viết cho dùng nút lệnh).nhờ các bạn giúp sửa lại.cảm ơn.
 
Upvote 0
Minh cũng hay dùng code trên để bảo vệ bảng tính,nên muốn kết hợp với đoạn code ẩn dòng trống vào luôn (một công đôi việc)nhưng lại ko biết phải sửa lại đoạn code ẩn dòng trống lại như thế nào(vì đoạn code ẩn dòng trống được viết cho dùng nút lệnh).nhờ các bạn giúp sửa lại.cảm ơn.
Thôi như vầy cho nhanh (cho cả bạn và những người sẽ giúp đỡ bạn), bây giờ bạn gửi 1 file mẫu lên, nêu rõ trong đó cần làm những gì. Mình tin rằng sẽ có câu trả lời phù hợp nhất cho bạn.
 
Upvote 0
Các bạn xem file và giúp mình nhé.trong file mình đã tạo một đoạn code để ẩn dòng trống trong cột "C" (cột C12:C111 ,được tự động cập nhật dữ liệu từ 1 sheet khác) cách này thấy nó cũng hoạt động tốt,nhưng vì nó lại hiện cái nút filter,nên làm cho độ rộng của của cột tăng lên,làm cho ko vừa với khổ A4 và lại nhìn ko được đẹp.nên nhờ các bạn sửa lại để cho nó ẩn cái nút filter,nhưng vẫn ẩn được dòng trống,các bạn xem file.
 

File đính kèm

Upvote 0
Viết thế này sẽ "đẹp" hơn:
PHP:
Sub Cmd_Click()
  DK = Cmd.Caption = "Loc"
  With Range("$A$8:$A$28")
    If DK Then .AutoFilter 1, "<>", , , False Else .AutoFilter
  End With
  Cmd.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub
Ẩn luôn mũi tên AutoFilter

bạn ndu ơi,ko biết đoạn code ẩn nút filter là đoạn nào,có thể đưa thêm vào file của mình đã up ở bài trên được ko?
 
Upvote 0
bạn ndu ơi,ko biết đoạn code ẩn nút filter là đoạn nào,có thể đưa thêm vào file của mình đã up ở bài trên được ko?

Nếu bạn cho nó là True thì nó hiện nút xổ xuống ra.

If DK Then .AutoFilter 1, "<>", , , False Else .AutoFilter
 
Upvote 0
Cái này em muốn trong khoảng từ "$A$8:$I$28" cứ hàng nào có bất kì một ô trống thì sẽ ẩn hàng đó thì làm thế nào ạ. Em xin cảm ơn.
 
Upvote 0
À em hỏi đoạn này các bác ạ

Sub Cmd_Click
()
DK = Cmd.Caption = "Loc"
With Range("$A$8:$A$28")
If
DK Then .AutoFilter Field:=1, Criteria1:="<>" Else .AutoFilter
End With
Cmd
.Caption = IIf(DK, "Khong Loc", "Loc")
End Sub
 
Upvote 0
Xin lỗi vì đào mộ Theart cũ
Anh Nghĩa cho em hỏi, nếu dùng AutoFilter như ở #11 của anh thì đối với Sheet mà có 2 hoặc nhiều hơn 2 bảng, thì khi lọc nó sẽ bị lỗi như trong hình.
Còn nếu dùng ẩn hàng như thầy NDU ở #6 thì không bị, tuy nhiên nó ẩn xong là ẩn luôn, như anh nói ở #11 ấy.
Vậy có cách nào hài hòa tụi nó k ạ
 

File đính kèm

  • 1.jpg
    1.jpg
    27.2 KB · Đọc: 15
  • 2.jpg
    2.jpg
    30.3 KB · Đọc: 12
  • GPE.xls
    GPE.xls
    47 KB · Đọc: 28
Upvote 0
mọi người cho e hỏi. hiện trạng e đang có 1 file. phần trên la số liệu. dòng 4000 dưới được chọn làm dòng tính tổng cho các số liệu ở trện. khi e filter 1 ngày bất kỳ để lấy số liệu. thì cái cái dòng trống từ dòng cuối cùng của số liệu đến dòng trên của dòng tính tổng no bị hide lại. và dòng tổng 4000 lại nằm xác phía dưới của các dòng số liệu bển trên...giúp e với
 
Upvote 0

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

Back
Top Bottom