Xin các cao thủ giúp thu gọn Code (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài

tranphuctb85

Thành viên mới
Tham gia
27/8/23
Bài viết
1
Được thích
0
Mình có một đoạn code như bên dưới với 5 combobox. nhờ các bạn thu gọn lại thành một hàm giúp mình với.
xin cám ơn trước
Private Sub cboxJaven_Change() If cboxJaven = True Then cboxJaven.ForeColor = RGB(255, 0, 0) Else cboxJaven.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxAxit_Change() If cboxAxit = True Then cboxAxit.ForeColor = RGB(255, 0, 0) Else cboxAxit.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxOxy_Change() If cboxOxy = True Then cboxOxy.ForeColor = RGB(255, 0, 0) Else cboxOxy.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxHo_Change() If cboxHo = True Then cboxHo.ForeColor = RGB(255, 0, 0) Else cboxHo.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxSay_Change() If cboxSay = True Then cboxSay.ForeColor = RGB(255, 0, 0) Else cboxSay.ForeColor = RGB(0, 0, 0) End If End Sub
 
Mình có một đoạn code như bên dưới với 5 combobox. nhờ các bạn thu gọn lại thành một hàm giúp mình với.
xin cám ơn trước
Private Sub cboxJaven_Change() If cboxJaven = True Then cboxJaven.ForeColor = RGB(255, 0, 0) Else cboxJaven.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxAxit_Change() If cboxAxit = True Then cboxAxit.ForeColor = RGB(255, 0, 0) Else cboxAxit.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxOxy_Change() If cboxOxy = True Then cboxOxy.ForeColor = RGB(255, 0, 0) Else cboxOxy.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxHo_Change() If cboxHo = True Then cboxHo.ForeColor = RGB(255, 0, 0) Else cboxHo.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxSay_Change() If cboxSay = True Then cboxSay.ForeColor = RGB(255, 0, 0) Else cboxSay.ForeColor = RGB(0, 0, 0) End If End Sub
Nếu chỉ là True/False thì nên tạo optionbutton thay vì combobox
Nếu muốn gộp code thì viết class module
Nếu không muốn viết class thì để 5 sub như vậy nhưng viết một thủ tục riêng để gọi xử lý tô màu, không cần viết lại từng code tô màu như vậy
 
Upvote 0
Mình có một đoạn code như bên dưới với 5 combobox. nhờ các bạn thu gọn lại thành một hàm giúp mình với.
xin cám ơn trước
Private Sub cboxJaven_Change() If cboxJaven = True Then cboxJaven.ForeColor = RGB(255, 0, 0) Else cboxJaven.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxAxit_Change() If cboxAxit = True Then cboxAxit.ForeColor = RGB(255, 0, 0) Else cboxAxit.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxOxy_Change() If cboxOxy = True Then cboxOxy.ForeColor = RGB(255, 0, 0) Else cboxOxy.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxHo_Change() If cboxHo = True Then cboxHo.ForeColor = RGB(255, 0, 0) Else cboxHo.ForeColor = RGB(0, 0, 0) End If End Sub Private Sub cboxSay_Change() If cboxSay = True Then cboxSay.ForeColor = RGB(255, 0, 0) Else cboxSay.ForeColor = RGB(0, 0, 0) End If End Sub
Viết 1 cái code duyệt qua hết các combobox trong module là được mà.
 
Upvote 0
Viết 1 thủ tục dùng chung có truyền tham số:
Mã:
Sub ColorCtrl(Ctl As Control)
If Ctl= True Then
        Ctl.ForeColor = RGB(255, 0, 0)
Else
        Ctl.ForeColor = RGB(0, 0, 0)   
End If
End Sub

Sau đó mỗi control viết cho chính nó
Mã:
Private Sub cboxJaven_Change()
ColorCtrl cboxJaven
End Sub

Và nếu chỉ có True False thì làm như bài 2 bảo: nên dùng checkbox hoặc Option button
 
Upvote 0
Web KT

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

Back
Top Bottom