Excel-VBA Ẩn/Hiện trang tính tùy thuộc vào giá trị ô
Xin chào,
Vì tôi không biết gì về VBA nên tôi cần giúp đỡ để viết mã ẩn hoặc hiện các trang tính trong Excel tùy thuộc vào giá trị của một ô.
Cho đến nay tôi đã đạt được điều này.
Sub hide_unhide()
Nếu Range("B4").Value = "yes" thì
Sheets(" Tên x1 ").Visible = True
ElseIf Range("B4").Value = "no" Then
Sheets(" Tên x1 ").Visible = False
Kết thúc nếu
End Sub
Nhưng có khoảng 100 trang tính và tôi không thể đưa tên của tất cả chúng vào mã VBA. Vì vậy, tôi cần một đoạn mã để ẩn hoặc hiện từng trang tính tùy thuộc vào khai báo của tôi là "yes" (hiển thị) hoặc "no" (không hiển thị).
Ví dụ, theo lựa chọn của tôi, chỉ hai trang tính đầu tiên mới được hiển thị.
Khai báo tên
Tên X1 có
Tên X2 có
Tên X3 không
Có ai giúp được không?
Cảm ơn
Đã chuyển từ: Excel / Khác/không xác định / Office 2016
Trả lời:
Sub Hide_Sheets()
Bảng tính Dim sh As
Đối với mỗi sh trong ThisWorkbook.Sheets
Nếu sh.Range("B4").Value = "yes" thì sh.Visible = True
Nếu sh.Range("B4").Value = "no" thì sh.Visible = False
Kết thúc nếu
Tiếp theo sh
End Sub
Gord
Trả lời:
Trước hết, cảm ơn phản hồi của bạn.
Nó hoạt động tốt nhưng lại che khuất trang tính chính nơi tôi đăng tải câu trả lời "có" hoặc "không". Trang tính này phải không bị ảnh hưởng.
Trả lời:
Sub Hide_Sheets()
Bảng tính Dim sh As
Đối với mỗi sh trong ThisWorkbook.Sheets
Nếu sh.Name khác "Main" thì
Nếu sh.Range("B4").Value = "yes" thì sh.Visible = True
Nếu sh.Range("B4").Value = "no" thì sh.Visible = False
Kết thúc nếu
Tiếp theo sh
End Sub
Gord
Comments
Post a Comment