Leo
Leo
Thảo luận 3 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 534 lượt xem

khi sử dụng cấu trúc IF với đoạn code của mình như sau thì mình thấy dòng

Cho mình hỏi khi sử dụng cấu trúc IF với đoạn code của mình như sau thì mình thấy dòng "B" & i + 6 cũng bị ẩn mất đi luôn.
Sub Loc_phieu_kiem_tra()
Dim dongcuoi_locphieu As Long
dongcuoi_locphieu = Sheets("Danh_Muc").Range("A" & Rows.Count).End(xlUp).Row
Dim i As Long
For i = 18 To dongcuoi_locphieu
If Sheets("Danh_Muc").Range("G" & i).Value = "VK" Then
Sheets("Danh_Muc").Range("B" & i + 6 & ":B" & i + 11).EntireRow.Hidden = True
ElseIf (Sheets("Danh_Muc").Range("G" & i).Value = "bt") Or (Sheets("Danh_Muc").Range("G" & i).Value = "bts") Then
Sheets("Danh_Muc").Range("B" & i + 4 & ":B" & i + 5, "B" & i + 7 & ":B" & i + 9).EntireRow.Hidden = True
End If
Next i
End Sub
Mình muốn dòng "B" & i + 6 hiện thì trước khi Endif phải thêm Sheets("Danh_Muc").Range("B" & i + 6).EntireRow.Hidden = False
Thảo luận 3 câu trả lời
Lượt xem 534 lượt xem
Vỗ tay vỗ tay
Leo 10:06 - Jun 10, 2020
Nguyên tắc trước khi ẩn là bạn phải mở ẩn trước.
Đầu tiên cần mở ẩn tất cả các dòng trong sheet (chú ý là toàn bộ nhé). Lệnh này đặt trước khi xét vòng lặp For cho biến i.
Sau đó bạn mới kiểm tra và ẩn những dòng thỏa mãn điều kiện.
Vỗ tay vỗ tay
Leo 11:06 - Jun 10, 2020
vâng. nhưng khi chạy tới Sheets("Danh_Muc").Range("B" & i + 4 & ":B" & i + 5, "B" & i + 7 & ":B" & i + 9).EntireRow.Hidden = True thì dòng "B" & i + 6 cũng bị ẩn đi luôn ạ. có cách nào chọn ẩn đúng B i + 4, B i + 5, B i + 7, B i + 8, B i + 9 không ạ?
mình không làm được nên phải làm thế này ạ:
Sub Loc_phieu_kiem_tra()
Dim dongcuoi_locphieu As Long
dongcuoi_locphieu = Sheets("Danh_Muc").Range("A" & Rows.Count).End(xlUp).Row
Dim i As Long
For i = 18 To dongcuoi_locphieu
If Sheets("Danh_Muc").Range("G" & i).Value = "VK" Then
Sheets("Danh_Muc").Range("B" & i + 6 & ":B" & i + 11).EntireRow.Hidden = True
ElseIf (Sheets("Danh_Muc").Range("G" & i).Value = "bt") Or (Sheets("Danh_Muc").Range("G" & i).Value = "bts") Then
Sheets("Danh_Muc").Range("B" & i + 4 & ":B" & i + 5, "B" & i + 7 & ":B" & i + 9).EntireRow.Hidden = True '''''tới đây là ẩn một phát từ "B" & i + 4 tới ":B" & i + 9''''
Sheets("Danh_Muc").Range("B" & i + 6).EntireRow.Hidden = False ''''Nên mình phải chèn dòng này''''
ElseIf (Sheets("Danh_Muc").Range("G" & i).Value = "") And (Sheets("Danh_Muc").Range("d" & i).Value <> "") Then
Sheets("Danh_Muc").Range("B" & i + 4 & ":B" & i + 11).EntireRow.Hidden = True
End If
Next i
End Sub
Vỗ tay vỗ tay
Leo 11:06 - Jun 10, 2020
Chào bạn bạn làm hướng code như sau, ẩn đi hết các dòng rồi bạn hiện dòng range("B"&i+6) lên bạn nhé. hoặc bạn đẩy file lên nhé.
Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông