Tự động ẩn hàng trong Excel
CHÀO,
Tôi phải tạo một bảng tính excel trong đó 2 hàng tiếp theo sẽ xuất hiện nếu câu trả lời là Có và sẽ bị ẩn nếu câu trả lời là Không hoặc Không áp dụng hoặc để trống.
Trong mẫu dưới đây:
* Cột A có số mục (1,2,3....) có đáp án Yes hoặc No hoặc N/A ở Cột D.
* Nếu Cột D trả lời Có thì 2 hàng tiếp theo (hàng 10 & 11) sẽ hiện ra, nếu không sẽ ẩn đi. Hàng 1-6 nên được loại trừ khỏi điều này.
* Nội dung trên các cột B & C đã hợp nhất sẽ tự động khớp.
Tuy nhiên, mã bên dưới đã hoạt động, nó không tự động điều chỉnh nội dung trong ô B10 và nó cũng tự động ẩn các hàng 4-5 nếu ngày được nhập.
Tôi sẽ đánh giá cao một phản ứng về điều này.
----------------------------------------
Bảng tính phụ riêng tư_Change (Mục tiêu ByVal dưới dạng phạm vi)
Dim rng As Range
Nếu không giao nhau(Range("D:D"), Target) thì không có gì
Application.ScreenUpdating = Sai
Application.EnableEvents = Sai
Mật khẩu Me.Unprotect:="bí mật"
Đối với mỗi rng trong Intersect(Range("D:D"), Target)
Nếu rng.Value = "Có" thì
rng.Offset(1).Resize(2).EntireRow.Hidden = Sai
rng.Offset(1).Resize(2).EntireRow.AutoFit
Khác
rng.Offset(1).Resize(2).EntireRow.Hidden = True
Kết thúc nếu
Chuông tiếp theo
Mật khẩu Me.Protect:="bí mật"
Application.EnableEvents = Đúng
Application.ScreenUpdating = Đúng
Kết thúc nếu
Kết thúc phụ
------------------------------------------
Cảm ơn,
Shaynne
Trả lời:
Tôi có thể hỏi liệu chúng tôi có thể chọn "Có" hoặc "Y" làm câu trả lời hiển thị 2 hàng tiếp theo không? Bởi vì một số người có xu hướng trả lời Y thay vì Có.
Chắc chắn. Chúng ta có thể kiểm tra xem ký tự ngoài cùng bên trái có phải là "Y" hay không và nếu chúng ta thêm Văn bản so sánh tùy chọn vào mô-đun mã thì mã cũng chấp nhận các câu trả lời viết thường: "có", "y", "Có", "Yaa", ...
Andreas.
Tùy chọn So sánh văn bản
Bảng tính phụ riêng tư_Change (Mục tiêu ByVal dưới dạng phạm vi)
Đặt mục tiêu = Giao nhau(Mục tiêu, _
Range("A9", Range("A" & Rows.Count).End(xlUp)).EntireRow, Columns("D"))
Nếu mục tiêu không có gì thì thoát Sub
Mật khẩu Me.Unprotect:="bí mật"
Target.Offset(1).Resize(2).EntireRow.Hidden = Left(Target, 1) <> "Y"
Mật khẩu Me.Protect:="bí mật"
Kết thúc phụ
Comments
Post a Comment