VBA ẩn_hiện dòng rỗng theo điều kiện (empty cell) (1 người xem)

Liên hệ QC

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

MeThuongNho

Thành viên thường trực
Tham gia
30/10/09
Bài viết
368
Được thích
77
Nghề nghiệp
Sale - Planning
Dear Anh/Chị,
Em có file đính kèm , code Hide và Unhide : ẩn hiện các dòng 37-70. với điều kiện cột J="" là ẩn.
Cũng code này nhưng nếu sửa thành cột B thì không được.
Em không rành VBA, mọi người xem giúp em với.
Trân trọng!
 

File đính kèm

CMD button:
PHP:
Sub Cmd_Click()
    Application.ScreenUpdating = False
    Dim isChk As Boolean, Rng As Range
    isChk = (CMD.Caption = "Loc")
    Set Rng = ActiveSheet.Range("B1:B70")
    HiddenRows ActiveSheet, Rng, isChk
    CMD.Caption = Choose(-1 * isChk + 1, "Loc", "Không loc")
    Application.ScreenUpdating = True
 End Sub
Module:
PHP:
Sub HiddenRows(ByVal ws As Worksheet, ByVal Rng As Range, ByVal isHidden As Boolean)
    Dim a(), b(), i As Long, j As Long
    If Rng.Rows.Count < 36 Then Exit Sub
    a = Rng.Value
    ReDim b(1 To UBound(a, 1))
    For i = 36 To UBound(a, 1)
        If Len(a(i, 1)) = 0 Then
            j = j + 1
            b(j) = i & ":" & i
        End If
    Next i
    If j > 0 Then
        ReDim Preserve b(1 To j)
        ws.Range(Join(b, ",")).EntireRow.Hidden = isHidden
    End If
End Sub
 
Upvote 0
CMD button:
PHP:
Sub Cmd_Click()
    Application.ScreenUpdating = False
    Dim isChk As Boolean, Rng As Range
    isChk = (CMD.Caption = "Loc")
    Set Rng = ActiveSheet.Range("B1:B70")
    HiddenRows ActiveSheet, Rng, isChk
    CMD.Caption = Choose(-1 * isChk + 1, "Loc", "Không loc")
    Application.ScreenUpdating = True
 End Sub
Module:
PHP:
Sub HiddenRows(ByVal ws As Worksheet, ByVal Rng As Range, ByVal isHidden As Boolean)
    Dim a(), b(), i As Long, j As Long
    If Rng.Rows.Count < 36 Then Exit Sub
    a = Rng.Value
    ReDim b(1 To UBound(a, 1))
    For i = 36 To UBound(a, 1)
        If Len(a(i, 1)) = 0 Then
            j = j + 1
            b(j) = i & ":" & i
        End If
    Next i
    If j > 0 Then
        ReDim Preserve b(1 To j)
        ws.Range(Join(b, ",")).EntireRow.Hidden = isHidden
    End If
End Sub
Cám ơn befaint,
Mình test code nếu có gì mình post lại.
Thân!
 
Upvote 0
Web KT

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

Back
Top Bottom