Excel tự động ẩn hàng
Chào mọi người
Tôi có một bảng tính cần hiển thị và ẩn các hàng dựa trên giá trị x của một ô. Vì vậy, nếu ô đó có giá trị bằng x thì một số hàng sẽ được hiển thị, nếu không thì chúng sẽ bị ẩn.
Tôi có một macro đơn giản:
Sub hiderow(val As Characters)
Nếu val = x thì
EntireRow.Hidden = True
Khác
EntireRow.Hidden = False
Kết thúc nếu
End Sub
Sub hiderows()
End Sub
Khi tôi lưu mô-đun, tôi không nhận được hàm hiderow nên tôi không thể kiểm tra hoặc sửa lỗi. Tôi thường không làm việc với Excel mà chỉ dùng R nên tôi hơi bối rối, có gợi ý nào giúp đỡ không?
Trả lời:
Chính xác Steve...đó là cách đúng đắn.
và được chỉnh sửa một chút...
THAY THẾ
Nếu Not Intersect(Target, [ S21 ]) Is Nothing Then ' << menu thả xuống, trong ô S21
Chọn mục tiêu trường hợp.Giá trị
Trường hợp "x"
Hàng("32:39").Ẩn = Sai
Trường hợp "-"
Hàng("32:39").Ẩn = Đúng
Kết thúc lựa chọn
Kết thúc nếu
Nếu Not Intersect(Target, [ AC21 ]) Is Nothing Then ' << menu thả xuống, trong ô AC21
Chọn mục tiêu trường hợp.Giá trị
Trường hợp "x"
Hàng("32:39").Ẩn = Sai
Trường hợp "-"
Hàng("32:39").Ẩn = Đúng
Kết thúc lựa chọn
Kết thúc nếu
VỚI
Nếu Not Intersect(Target, [ S21, AC21 ]) Is Nothing Then ' << menu thả xuống, trong các ô S21, AC21
Chọn mục tiêu trường hợp.Giá trị
Trường hợp "x"
Hàng("32:39").Ẩn = Sai
Trường hợp "-"
Hàng("32:39").Ẩn = Đúng
Kết thúc lựa chọn
Kết thúc nếu
Trả lời:
CHÀO,
Hãy thử ví dụ này (chỉ cần thay đổi nếu cần)
Tình huống: ẩn hàng 3:10
Giả sử dữ liệu nằm trên trang tính 1 (trong ô A1, chọn menu thả xuống "có" hoặc "không ").
Nhấp chuột phải vào tab Sheet1, chọn Xem mã và dán đoạn mã sau:
Private Sub Worksheet_Change(ByVal Target As Range)
Ngày 29 tháng 11 năm 2017
Nếu Not Intersect(Target, [A1]) Is Nothing Then ' << menu thả xuống, trong ô A1
Chọn mục tiêu trường hợp.Giá trị
Trường hợp "có"
Hàng("3:10").Ẩn = Đúng
Trường hợp "không"
Hàng("3:10").Ẩn = Sai
Kết thúc lựa chọn
Kết thúc nếu
End Sub
Nhấn Alt+Q để đóng Visual Basic.
Comments
Post a Comment