Ẩn hiện dòng theo số ký tự của chuỗi

Liên hệ QC

tuan16

Thành viên thường trực
Tham gia
28/11/13
Bài viết
285
Được thích
18
Em xin nhờ các anh chị trong diễn dàn viết giúp em đoạn code để ẩn hiện dòng theo mong muốn..
Nếu ô b10 có 0 đến 105 ký tự thì hiện các dòng từ 11 đến 20
Nếu ô b10 có từ 106 đến 210 ký tự thì hiện các dòng từ 11 đến 15
Nếu ô b10 có từ 211 đến 315 ký tự thì hiện các dòng từ 11 đến 13
Nếu ô b10 có từ 316 đến 420 ký tự thì hiện các dòng từ 11 đến 12
Nếu ô b10 lớn hơn 421 ký tự thì chỉ hiện dòng 11
Các dòng từ 1 đến 9 và từ 21 đến cuối không chịu tác động của đoạn code trên
 

File đính kèm

  • gpe.xlsx
    102.7 KB · Đọc: 4
Lần chỉnh sửa cuối:
Bạn trãi nghiệm với con macro này:

PHP:
Sub HienDongTheoSoLuongKiTu()
 Dim lRw As Long, DD As Long
 
Rows("11:35").Hidden = False
 DD = Len([B10].Value)
 lRw = Switch(DD < 106, 20, DD < 211, 15, DD < 316, 13, DD < 421, 12, DD >= 421, 11)
 Rows("11:" & lRw).Hidden = True
End Sub
 
Upvote 0
Bạn trãi nghiệm với con macro này:

PHP:
Sub HienDongTheoSoLuongKiTu()
 Dim lRw As Long, DD As Long
 
Rows("11:35").Hidden = False
 DD = Len([B10].Value)
 lRw = Switch(DD < 106, 20, DD < 211, 15, DD < 316, 13, DD < 421, 12, DD >= 421, 11)
 Rows("11:" & lRw).Hidden = True
End Sub
Thầy xem lại giúp em với ạ... em chạy đoạn code của thầy mà nó ẩn hết từ dòng 11 đến dòng 20. Khi độ dài b10 thay đổi thì các dòng từ 11 đến 20 không ẩn hiện ra ạ
 
Upvote 0
Thì chỗ nào có True bạn sửa lại thành False & ngược lại xem sao!
:D :D :D
 
Upvote 0
Thì chỗ nào có True bạn sửa lại thành False & ngược lại xem sao!
:D :D :D
dạ em sửa True thành False thì đã ẩn hiện được nhưng các dòng từ 21 xuống cũng bị ẩn luôn... em muốn các dòng bên dưới vẫn hiện bình thường... nhờ thầy xem lại giúp ạ
 

File đính kèm

  • gpe1.xlsm
    136.7 KB · Đọc: 3
Lần chỉnh sửa cuối:
Upvote 0
Em xin nhờ các anh chị trong diễn dàn viết giúp em đoạn code để ẩn hiện dòng theo mong muốn..
Nếu ô b10 có 0 đến 105 ký tự thì hiện các dòng từ 11 đến 20
Nếu ô b10 có từ 106 đến 210 ký tự thì hiện các dòng từ 11 đến 15
Nếu ô b10 có từ 211 đến 315 ký tự thì hiện các dòng từ 11 đến 13
Nếu ô b10 có từ 316 đến 420 ký tự thì hiện các dòng từ 11 đến 12
Nếu ô b10 lớn hơn 421 ký tự thì chỉ hiện dòng 11
Các dòng từ 1 đến 9 và từ 21 đến cuối không chịu tác động của đoạn code trên
Thử code này:
PHP:
Sub AnHienDong()

Dim KyTu As Long
Rows("11:20").Hidden = True
KyTu = VBA.Len(Range("B10").Value)
Select Case KyTu
    Case 0 To 105
        Rows("11:20").Hidden = False
    Case 106 To 210
        Rows("11:15").Hidden = False
    Case 211 To 315
        Rows("11:13").Hidden = False
    Case 316 To 420
        Rows("11:12").Hidden = False
    Case Else
        Rows("11:11").Hidden = False
End Select

End Sub
 
Upvote 0
Thử code này:
PHP:
Sub AnHienDong()

Dim KyTu As Long
Rows("11:20").Hidden = True
KyTu = VBA.Len(Range("B10").Value)
Select Case KyTu
    Case 0 To 105
        Rows("11:20").Hidden = False
    Case 106 To 210
        Rows("11:15").Hidden = False
    Case 211 To 315
        Rows("11:13").Hidden = False
    Case 316 To 420
        Rows("11:12").Hidden = False
    Case Else
        Rows("11:11").Hidden = False
End Select

End Sub
dạ em cảm ơn anh ạ
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom