Dùng lệnh if để ẩn hàng

Liên hệ QC

790312

Thành viên hoạt động
Tham gia
7/4/08
Bài viết
181
Được thích
8
Các bạn cho mình hỏi:thí dụ ở hàng 1 ô A chẳng hạn có thể viết hàm tự tạo làm sao nếu giá trị của ô A này nhỏ hơn 0 thì mặc định 4 hàng phía dưới ẩn đi còn nếu lớn hơn không thì 4 hàng đó tự động hiện lên lại.Chân thành cảm ơn trước.
 
Các bạn cho mình hỏi:thí dụ ở hàng 1 ô A chẳng hạn có thể viết hàm tự tạo làm sao nếu giá trị của ô A này nhỏ hơn 0 thì mặc định 4 hàng phía dưới ẩn đi còn nếu lớn hơn không thì 4 hàng đó tự động hiện lên lại.Chân thành cảm ơn trước.
Bạn nên đưa file lên để đỡ mất thời gian người khác và bạn có kết qủa tốt hơn
Giá trị cell A1 bạn nhập vào thì 4 hàng tiếp theo ẩn hay giá trị A1 đã có và thực hiện tìm kiếm giá trị nào cột A <0 thì 4 hàng tiếp theo ẩn?
 
Lần chỉnh sửa cuối:
Upvote 0
Các bạn cho mình hỏi:thí dụ ở hàng 1 ô A chẳng hạn có thể viết hàm tự tạo làm sao nếu giá trị của ô A này nhỏ hơn 0 thì mặc định 4 hàng phía dưới ẩn đi còn nếu lớn hơn không thì 4 hàng đó tự động hiện lên lại.Chân thành cảm ơn trước.
bạn muốn như thế này chăng/
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1").Value < 0 Then
Range("a2:a5").EntireRow.Hidden = True
Else
Range("a2:a5").EntireRow.Hidden = False
   End If
End Sub
 

File đính kèm

  • Book1.xls
    33 KB · Đọc: 63
Lần chỉnh sửa cuối:
Upvote 0
bạn muốn như thế này chăng/
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1").Value < 0 Then
Range("a2:a5").EntireRow.Hidden = True
Else
Range("a2:a5").EntireRow.Hidden = False
End If
End Sub

Đúng rồi.cảm ơn bạn,nhưng có thể viết thành hàm mà không phải thủ tục được không bạn?
 
Upvote 0
Đúng rồi.cảm ơn bạn,nhưng có thể viết thành hàm mà không phải thủ tục được không bạn?
Hàm thì làm sao có khả năng ẩn cột dòng hà bạn? ---> Đã gọi là HÀM thì nó chỉ có khả năng TÍNH TOÁN rồi XUẤT KẾT QUÀ thôi
 
Upvote 0
Cho mình hỏi trong code bạn viết nếu a1<0 thì hàng a2 đến a5 ẩn đi nếu mình muốn nếu a1<0 thì hàng a2 đến hàng a5 ẩn và a7 ẩn thì viết thế nào?Chân thành cảm ơn.
 
Upvote 0
Cho mình hỏi trong code bạn viết nếu a1<0 thì hàng a2 đến a5 ẩn đi nếu mình muốn nếu a1<0 thì hàng a2 đến hàng a5 ẩn và a7 ẩn thì viết thế nào?Chân thành cảm ơn.

Muốn vậy thì bạn sửa lại code như sau:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1").Value < 0 Then
Range("a2:a5,a7").EntireRow.Hidden = True
Else
Range("a2:a5,a7").EntireRow.Hidden = False
   End If
End Sub

Chúc bạn thành công!
 
Upvote 0
Muốn vậy thì bạn sửa lại code như sau:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1").Value < 0 Then
Range("a2:a5,a7").EntireRow.Hidden = True
Else
Range("a2:a5,a7").EntireRow.Hidden = False
End If
End Sub

Chúc bạn thành công!
Mình gặp trường hợp này mong các bạn giúp:mình có gửi file đính kèm.Nếu mở file lên nhập vào ô a1 số nhỏ hơn hoặc bằng 5 thì sử lý đúng,tiếp theo nhập số lớn hơn bằng 10 vẫn sử lý đúng nhưng tiếp theo nếu nhập vào số nhỏ hơn hoặc bằng 5 thì lại không sử lý đúng.Thanks
 

File đính kèm

  • Book1.rar
    8.1 KB · Đọc: 36
Upvote 0
Mình gặp trường hợp này mong các bạn giúp:mình có gửi file đính kèm.Nếu mở file lên nhập vào ô a1 số nhỏ hơn hoặc bằng 5 thì sử lý đúng,tiếp theo nhập số lớn hơn bằng 10 vẫn sử lý đúng nhưng tiếp theo nếu nhập vào số nhỏ hơn hoặc bằng 5 thì lại không sử lý đúng.Thanks

Bài này của bạn điều kiện có vấn đề. Bạn kiểm tra lại nhé! Trong trường hợp của bài này thì bạn nên dùng cấu trúc Select Case thay If thì hay hơn.
 
Upvote 0
Mình gặp trường hợp này mong các bạn giúp:mình có gửi file đính kèm.Nếu mở file lên nhập vào ô a1 số nhỏ hơn hoặc bằng 5 thì sử lý đúng,tiếp theo nhập số lớn hơn bằng 10 vẫn sử lý đúng nhưng tiếp theo nếu nhập vào số nhỏ hơn hoặc bằng 5 thì lại không sử lý đúng.Thanks
Code của bạn
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("a1").Value <= 5 Then
Range("a6:a9").EntireRow.Hidden = True
Else
Range("a6:a9").EntireRow.Hidden = False
If Range("a1").Value >= 10 Then
Range("a2:a5,a9").EntireRow.Hidden = True
Else
Range("a2:a5,a9").EntireRow.Hidden = False
If Range("a1").Value > 5 And Range("a1").Value < 10 Then
Range("a2:a9").EntireRow.Hidden = False
   End If
   End If
   End If
End Sub
- Lần 1: bạn nhập <= 5 thỏa If đầu tiên ==> hàng A6:A9 ẩn
- Lần 2: bạn nhập >= 10 code chạy qua If đầu không thỏa ==> "eo" ==> unhide A6:A9; thỏa If thứ 2 ==> hàng A2:A5 & hàng A9 ẩn
- Lần 3: bạn nhập <=5 code chạy thỏa If đầu tiên ==> hàng A6:A9 ẩn
Sau 3 lần nhập hàng A2:A9 ẩn là code chạy đúng nhưng chắc có lẽ không đúng với ....ý bạn
Híc, vậy bạn muốn nó lúc ẩn lúc hiện ra làm sao?
Thân
 
Upvote 0
lần 3 bạn nhập <=5 thì nó ẩn từ a2 đến a9 luôn chứ không ẩn từ a6:a9.thanks
 
Upvote 0
Bài này của bạn điều kiện có vấn đề. Bạn kiểm tra lại nhé! Trong trường hợp của bài này thì bạn nên dùng cấu trúc Select Case thay If thì hay hơn.
Bạn có thể giúp mình viết lại với cấu trúc Select Case được không?Mình mới bước đầu tập làm quen với VBA thôi.Chân thành cảm ơn trước.
 
Upvote 0
Do có thay đổi trong bảng tính nên nhờ các bác giúp vấn đề:
Nếu trong ô C2 là CÓ thì hàng 11 đến hàng 15 ẩn đi,còn trong ô C2 là KHÔNG thì các hàng đó lại hiện ra.
Chân thành cảm ơn trước.
 
Upvote 0
Do có thay đổi trong bảng tính nên nhờ các bác giúp vấn đề:
Nếu trong ô C2 là CÓ thì hàng 11 đến hàng 15 ẩn đi,còn trong ô C2 là KHÔNG thì các hàng đó lại hiện ra.
Chân thành cảm ơn trước.
Nhấn Alt F11 copy code phía dưới vào sheet bạn cần thực hiện (tại ô C2 bạn đánh Yes thay cho chữ có, và No thay cho chữ không)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" And Target.Value = "Yes" Then
Range("C11:C15").EntireRow.Hidden = True
End If
If Target.Address = "$C$2" And Target.Value = "No" Or Target.Value = "" Then
Range("C11:C15").EntireRow.Hidden = False
End If
End Sub
 
Upvote 0
Nhấn Alt F11 copy code phía dưới vào sheet bạn cần thực hiện (tại ô C2 bạn đánh Yes thay cho chữ có, và No thay cho chữ không)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" And Target.Value = "Yes" Then
Range("C11:C15").EntireRow.Hidden = True
End If
If Target.Address = "$C$2" And Target.Value = "No" Or Target.Value = "" Then
Range("C11:C15").EntireRow.Hidden = False
End If
End Sub
Mình thấy các anh trên GPE hay viết thế này thì gọn hơn nè
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$2" Then
   Range("C11:C15").EntireRow.Hidden = UCase(Target) = "YES"
End If
End Sub
 
Upvote 0
Web KT
Back
Top Bottom