Các Anh chị giúp em vấn đề ẩn dòng trong nhiều sheet có tính chất tương tự

Liên hệ QC
View attachment 198707ở mã code cũ để giá trị "A100" khi em chạy thấy báo lỗi, nên e thay giá trị "A1000" Thầy sửa cho cũng thấy báo lỗi
thầy cho em hỏi cấu trúc các sheet tương tự nhau nhưng sao khi chèn thêm dòng lại lỗi vậy Thầy, hay tại chỗ phần ký này nằm ở vị trí khác nhau trong các sheet nên bị ảnh hưởng đúng k thầy còn về nội dung của bảng thì giống nhau thầy ạ!
Trăm nghe không bằng mắt thấy, thấy cái file mới tin.
 
Dạ! e đã sửa Lại thành "A1000" như thầy hướng dẫn, Thầy xem giúp em.
Vậy sửa code lại thế này.
Mã:
Public Sub GPE_HideRow()
Dim S As String, i As Integer, Arr(), j As Integer, n As Integer, kt As Boolean
Dim sRng As Range
For i = 1 To 11 'Neu muon bo sheet11 thì thay so 11 thanh so 10
    Set sRng = Nothing
    With Sheets("KC_CD" & i)
        .Cells.EntireRow.Hidden = False
        S = "A16:N" & .Range("A1000").End(xlUp).Offset(-7).Row
        Arr = .Range(S).Value
        For j = 1 To UBound(Arr)
            kt = True
            For n = 3 To 14
                If Arr(j, n) <> Empty Then
                    kt = False
                    Exit For
                End If
            Next n
            If kt And (((Arr(j, 1) <> "") And (Arr(j, 2) <> "")) Or ((Arr(j, 1) = "") And (Arr(j, 2) = ""))) Then
                If j < UBound(Arr) Then
                    If (Arr(j, 1) <> "") And (Arr(j, 2) <> "") And (Arr(j + 1, 1) = "") And (Arr(j + 1, 2) = "") Then
                        For n = 3 To 14
                            If Arr(j + 1, n) <> "" Then GoTo Andong
                        Next n
                    End If
                End If
                If sRng Is Nothing Then
                    Set sRng = .Range((15 + j) & ":" & (15 + j))
                Else
                    Set sRng = Union(sRng, .Range((15 + j) & ":" & (15 + j)))
                End If
            End If
Andong:
        Next j
    If Not sRng Is Nothing Then sRng.EntireRow.Hidden = True
    End With
Next i
End Sub
 
Không phải thầy ơi, bọn em học kinh tế, nhưng giờ làm cùng nhau, xếp giao cho mảng làm hồ sơ nên nhiều cái chưa biết nên thảo luận cùng, có quen thôi, nhưng là 2 thầy ạ! e bọn em làm ở phòng hồ sơ chất lượng và kiêm kế toán! có gì học hỏi, mong được sự giúp đỡ của Thầy và các Anh Chị!
Vậy sửa code lại thế này.
Mã:
Public Sub GPE_HideRow()
Dim S As String, i As Integer, Arr(), j As Integer, n As Integer, kt As Boolean
Dim sRng As Range
For i = 1 To 11 'Neu muon bo sheet11 thì thay so 11 thanh so 10
    Set sRng = Nothing
    With Sheets("KC_CD" & i)
        .Cells.EntireRow.Hidden = False
        S = "A16:N" & .Range("A1000").End(xlUp).Offset(-7).Row
        Arr = .Range(S).Value
        For j = 1 To UBound(Arr)
            kt = True
            For n = 3 To 14
                If Arr(j, n) <> Empty Then
                    kt = False
                    Exit For
                End If
            Next n
            If kt And (((Arr(j, 1) <> "") And (Arr(j, 2) <> "")) Or ((Arr(j, 1) = "") And (Arr(j, 2) = ""))) Then
                If j < UBound(Arr) Then
                    If (Arr(j, 1) <> "") And (Arr(j, 2) <> "") And (Arr(j + 1, 1) = "") And (Arr(j + 1, 2) = "") Then
                        For n = 3 To 14
                            If Arr(j + 1, n) <> "" Then GoTo Andong
                        Next n
                    End If
                End If
                If sRng Is Nothing Then
                    Set sRng = .Range((15 + j) & ":" & (15 + j))
                Else
                    Set sRng = Union(sRng, .Range((15 + j) & ":" & (15 + j)))
                End If
            End If
Andong:
        Next j
    If Not sRng Is Nothing Then sRng.EntireRow.Hidden = True
    End With
Next i
End Sub
Vâng em cám ơn thầy! so với đoạn code trước thì mã Code này không có chức năng hiện dòng bị ẩn đúng không Thầy?
 
Vậy sửa code lại thế này.
Mã:
Public Sub GPE_HideRow()
Dim S As String, i As Integer, Arr(), j As Integer, n As Integer, kt As Boolean
Dim sRng As Range
For i = 1 To 11 'Neu muon bo sheet11 thì thay so 11 thanh so 10
    Set sRng = Nothing
    With Sheets("KC_CD" & i)
        .Cells.EntireRow.Hidden = False
        S = "A16:N" & .Range("A1000").End(xlUp).Offset(-7).Row
        Arr = .Range(S).Value
        For j = 1 To UBound(Arr)
            kt = True
            For n = 3 To 14
                If Arr(j, n) <> Empty Then
                    kt = False
                    Exit For
                End If
            Next n
            If kt And (((Arr(j, 1) <> "") And (Arr(j, 2) <> "")) Or ((Arr(j, 1) = "") And (Arr(j, 2) = ""))) Then
                If j < UBound(Arr) Then
                    If (Arr(j, 1) <> "") And (Arr(j, 2) <> "") And (Arr(j + 1, 1) = "") And (Arr(j + 1, 2) = "") Then
                        For n = 3 To 14
                            If Arr(j + 1, n) <> "" Then GoTo Andong
                        Next n
                    End If
                End If
                If sRng Is Nothing Then
                    Set sRng = .Range((15 + j) & ":" & (15 + j))
                Else
                    Set sRng = Union(sRng, .Range((15 + j) & ":" & (15 + j)))
                End If
            End If
Andong:
        Next j
    If Not sRng Is Nothing Then sRng.EntireRow.Hidden = True
    End With
Next i
End Sub
Vâng, Em chạy đoạn code của thầy sửa đã ok rồi, cám ơn thầy nhiều
Bài đã được tự động gộp:

Không phải thầy ơi, bọn em học kinh tế, nhưng giờ làm cùng nhau, xếp giao cho mảng làm hồ sơ nên nhiều cái chưa biết nên thảo luận cùng, có quen thôi, nhưng là 2 thầy ạ! e bọn em làm ở phòng hồ sơ chất lượng và kiêm kế toán! có gì học hỏi, mong được sự giúp đỡ của Thầy và các Anh Chị!

Vâng em cám ơn thầy! so với đoạn code trước thì mã Code này không có chức năng hiện dòng bị ẩn đúng không Thầy?
hê, E chỉ sửa cái phần cần ẩn thôi, cái đoạn hiện của nó thì cứ để vậy, hỉu không
 
Web KT

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

Back
Top Bottom